RSI + MFI Momentum Mapper - CoffeeKillerRSI + MFI Momentum Mapper - CoffeeKiller Indicator Guide
Welcome traders! This guide will walk you through the RSI + MFI Momentum Mapper indicator, an innovative market analysis tool developed by CoffeeKiller that combines two powerful oscillators to create a comprehensive momentum visualization system.
🔔 **Warning: This Is Not a Standard RSI or MFI Indicator** 🔔 This indicator combines and normalizes RSI and MFI data to create a unified momentum representation with boundary detection and peak signaling features.
Core Concept: Combined Momentum Analysis
The foundation of this indicator lies in merging the strengths of two complementary oscillators - Relative Strength Index (RSI) and Money Flow Index (MFI) - to provide a more robust momentum signal that accounts for both price action and volume.
Directional Columns: Momentum Strength
- Positive Green Columns: Bullish momentum
- Negative Red Columns: Bearish momentum
- Color intensity varies based on momentum strength
- Special coloring for new high/low boundaries
Marker Lines: Dynamic Support/Resistance
- High Marker Line (Magenta): Tracks the highest point reached during a bullish phase
- Low Marker Line (Cyan): Tracks the lowest point reached during a bearish phase
- Creates visual boundaries showing momentum extremes
Peak Detection System:
- Triangular markers identify significant local maxima and minima
- Background highlighting shows important momentum peaks
- Helps identify potential reversal points and momentum exhaustion
Reference Lines:
- Zero Line (Gray): Divides bullish from bearish momentum
- High Line (+1): Upper threshold for extremely bullish conditions
- Low Line (-1): Lower threshold for extremely bearish conditions
Core Components
1. Oscillator Normalization
- RSI and MFI values centered around zero
- Values scaled to create consistent visualization
- Normalized range typically between -1 and +1
- Combination of indicators for signal reliability
2. Boundary Tracking System
- Automatic detection of highest values in bullish phases
- Automatic detection of lowest values in bearish phases
- Step-line visualization of boundaries
- Color-coded for easy identification
3. Peak Detection System
- Identification of local maxima and minima
- Background highlighting of significant peaks
- Triangle markers for peak visualization
- Zero-line cross detection for trend changes
4. Signal Smoothing
- Signal line calculation via SMA
- Helps filter noise and identify trends
- Provides confirmation of momentum direction
Main Features
Oscillator Settings
- Customizable RSI length for sensitivity control
- Customizable MFI length for sensitivity control
- Normalized display for consistent visualization
- Signal smoothing for clearer readings
Visual Elements
- Color-coded columns showing momentum direction and strength
- Dynamic marker lines for momentum boundaries
- Peak triangles for significant turning points
- Background highlighting for peak identification
- Reference lines for momentum threshold levels
Signal Generation
- Zero-line crosses for trend change signals
- Boundary breaks for momentum strength
- Peak formation for potential reversals
- Color changes for momentum direction and acceleration
Customization Options
- RSI and MFI length parameters
- Marker line visibility and colors
- Peak marker color selection
- Peak background display options
Trading Applications
1. Trend Identification
- Directional line crossing above zero: bullish trend beginning
- Directional line crossing below zero: bearish trend beginning
- Column color: indicates momentum direction
- Column height: indicates momentum strength
2. Reversal Detection
- Peak triangles after extended trend: potential exhaustion
- Background highlighting: significant reversal points
- Directional line approaching marker lines: potential trend change
- Color shifts from bright to muted: decreasing momentum
3. Momentum Analysis
- Breaking above previous high boundary: accelerating bullish momentum
- Breaking below previous low boundary: accelerating bearish momentum
- Special coloring (magenta/cyan): boundary breaks indicating strength
- Approaching +1/-1 lines: extreme momentum conditions
4. Market Structure Assessment
- Consecutive higher peaks: strengthening bullish structure
- Consecutive lower troughs: strengthening bearish structure
- Peak comparisons: relative strength of momentum phases
- Boundary line steps: market structure levels
Optimization Guide
1. Oscillator Settings
- RSI Length: Default 14 provides balanced signals
- Lower values (7-10): More responsive, potentially noisier
- Higher values (20-30): Smoother, fewer false signals
- MFI Length: Default 14 provides balanced signals
- Lower values: More responsive to volume changes
- Higher values: Less sensitive to short-term volume spikes
2. Visual Customization
- Marker Line Colors: Adjust for visibility on your chart
- Peak Marker Color: Default yellow provides good contrast
- Enable/disable background highlights based on preference
- Consider chart background when selecting colors
3. Signal Interpretation
- Stronger signals: When directional line approaches +1/-1
- Confirmation: When peaks form after extended momentum
- Early warnings: When color intensity changes before direction
- Trend strength: Distance between zero line and current reading
4. Reference Line Usage
- Zero line: Primary trend divider
- +1/-1 lines: Extreme momentum thresholds
- Marker lines: Dynamic support/resistance levels
- Distance from reference: Momentum strength measure
Best Practices
1. Signal Confirmation
- Wait for zero-line crosses to confirm trend changes
- Look for peak formations to identify potential reversals
- Check for boundary breaks to confirm strong momentum
- Use with price action for entry/exit precision
2. Timeframe Selection
- Lower timeframes: more signals, potential noise
- Higher timeframes: cleaner signals, less frequent
- Multiple timeframes: confirm signals across time horizons
- Match to your trading style and holding period
3. Market Context
- Strong bullish phase: positive columns breaking above marker line
- Strong bearish phase: negative columns breaking below marker line
- Columns approaching zero: potential trend change
- Columns approaching +1/-1: extreme conditions, potential reversal
4. Combining with Other Indicators
- Use with trend indicators for confirmation
- Pair with other oscillators for divergence detection
- Combine with volume analysis for validation
- Consider support/resistance levels with boundary lines
Advanced Trading Strategies
1. Boundary Break Strategy
- Enter long when directional line breaks above previous high marker line
- Enter short when directional line breaks below previous low marker line
- Use zero-line as initial stop-loss reference
- Take profits at formation of opposing peaks
2. Peak Trading Strategy
- Identify significant peaks with triangular markers
- Look for consecutive lower peaks in bullish phases for shorting opportunities
- Look for consecutive higher troughs in bearish phases for buying opportunities
- Use zero-line crosses as confirmation
3. Extreme Reading Strategy
- Look for directional line approaching +1/-1 lines
- Watch for color changes and peak formations
- Enter counter-trend positions after confirmed peaks
- Use tight stops due to extreme momentum conditions
4. Column Color Strategy
- Enter long when columns turn bright green (increasing momentum)
- Enter short when columns turn bright red (increasing momentum)
- Exit when color intensity fades (decreasing momentum)
- Use marker lines as dynamic support/resistance
Practical Analysis Examples
Bullish Market Scenario
- Directional line crosses above zero line
- Green columns grow in height and intensity
- High marker line forms steps upward
- Peak triangles appear at local maxima
- Background highlights appear at significant momentum peaks
Bearish Market Scenario
- Directional line crosses below zero line
- Red columns grow in depth and intensity
- Low marker line forms steps downward
- Peak triangles appear at local minima
- Background highlights appear at significant momentum troughs
Consolidation Scenario
- Directional line oscillates around zero line
- Column colors alternate frequently
- Marker lines remain relatively flat
- Few or no new peak highlights appear
- Directional values remain small
Understanding Market Dynamics Through RSI + MFI Momentum Mapper
At its core, this indicator provides a unique lens to visualize market momentum by combining two complementary oscillators:
1. Combined Strength: By averaging RSI (price-based) and MFI (volume-based), the indicator provides a more comprehensive view of market momentum that considers both price action and buying/selling pressure.
2. Normalized Scale: The indicator normalizes values around zero, making it easier to identify bullish vs bearish conditions and the relative strength of momentum in either direction.
3. Dynamic Boundaries: The marker lines create a visual representation of the "high water marks" of momentum in both directions, helping to identify when markets are making new momentum extremes.
4. Exhaustion Signals: The peak detection system highlights moments where momentum has reached a local maximum or minimum, often precursors to reversals or consolidations.
Remember:
- Combine signals from directional line, marker lines, and peak formations
- Use appropriate timeframe settings for your trading style
- Customize the indicator to match your visual preferences
- Consider market conditions and correlate with price action
This indicator works best when:
- Used as part of a comprehensive trading system
- Combined with proper risk management
- Applied with an understanding of current market conditions
- Signals are confirmed by price action and other indicators
DISCLAIMER: This indicator and its signals are intended solely for educational and informational purposes. They do not constitute financial advice. Trading involves significant risk of loss. Always conduct your own analysis and consult with financial professionals before making trading decisions.
Buscar en scripts para "high low"
MACD Boundary PSA - CoffeeKillerMACD Boundary PSA - CoffeeKiller Indicator Guide
Welcome traders! This guide will walk you through the MACD Boundary PSA indicator, a powerful market analysis tool developed by CoffeeKiller that enhances the traditional MACD with advanced boundary detection and peak signaling features.
🔔 **Warning: This Indicator Has No Signal Line or MACD Line** 🔔 This indicator is my version of the MACD, that I use in conjunction with the Rev&Line indicator.
Core Concept: Enhanced MACD Analysis
The foundation of this indicator builds upon the classic Moving Average Convergence Divergence (MACD) indicator, adding boundary tracking and peak detection systems to provide clearer signals and market insights.
Histogram Bars: Market Momentum
- Positive Green Bars: Bullish momentum
- Negative Red Bars: Bearish momentum
- Color intensity varies based on momentum strength
- Special coloring for new high/low boundaries
Marker Lines: Dynamic Support/Resistance
- High Marker Line (Magenta): Tracks the highest point reached during a bullish phase
- Low Marker Line (Cyan): Tracks the lowest point reached during a bearish phase
- Acts as dynamic boundaries that help identify strength of current moves
Peak Detection System:
- Triangular markers identify significant local maxima and minima
- Background highlighting shows important momentum peaks
- Helps identify potential reversal points and momentum exhaustion
Core Components
1. MACD Calculation
- Customizable fast and slow moving averages
- Signal line smoothing options
- Flexible MA type selection (SMA or EMA)
- Custom source input options
2. Boundary Tracking System
- Automatic detection of highest values in bullish phases
- Automatic detection of lowest values in bearish phases
- Step-line visualization of boundaries
- Color-coded for easy identification
3. Peak Detection System
- Identification of local maxima and minima
- Background highlighting of significant peaks
- Triangle markers for peak visualization
- Zero-line cross detection for trend changes
4. Time Resolution Control
- Normal mode: calculations based on chart timeframe
- Custom resolution mode: calculations based on specified timeframe
Main Features
Time Resolution Settings
- Normal mode: calculations match your chart's timeframe
- Custom resolution mode: calculations based on specified timeframe
- Helps identify stronger signals from other timeframes
Visual Elements
- Color-coded histogram bars
- Dynamic marker lines for boundaries
- Peak triangles for significant turning points
- Background highlighting for peak identification
Signal Generation
- Zero-line crosses for trend change signals
- Boundary breaks for momentum strength
- Peak formation for potential reversals
- Color changes for momentum direction
Customization Options
- MA types and lengths
- Signal smoothing
- Color schemes
- Marker line visibility
- Peak background display options
Trading Applications
1. Trend Identification
- Histogram crossing above zero: bullish trend beginning
- Histogram crossing below zero: bearish trend beginning
- Histogram color: indicates momentum direction
- Consistent color intensity: trend strength
2. Reversal Detection
- Peak triangles after extended trend: potential exhaustion
- Background highlighting: significant reversal points
- Histogram approaching marker lines: potential trend change
- Color shifts from bright to muted: decreasing momentum
3. Momentum Analysis
- Histogram breaking above previous high boundary: accelerating bullish momentum
- Histogram breaking below previous low boundary: accelerating bearish momentum
- Special coloring (magenta/cyan): boundary breaks indicating strength
- Distance from zero line: overall momentum magnitude
4. Market Structure Assessment
- Consecutive higher peaks: strengthening bullish structure
- Consecutive lower troughs: strengthening bearish structure
- Peak comparisons: relative strength of momentum phases
- Boundary line steps: market structure levels
Optimization Guide
1. MACD Settings
- Fast Length: Shorter values (8-12) for responsiveness, longer values (20+) for smoother signals
- Slow Length: Shorter values (21-34) for more signals, longer values (72+) for major moves
- Default settings (22, 72, 9): balanced approach for most timeframes
- Consider using 8, 21, 5 for shorter timeframes and 34, 144, 5 for longer timeframes
2. MA Type Selection
- EMA: More responsive, follows price more closely
- SMA: Smoother, fewer false signals, potentially more lag
- Mix and match for oscillator and signal lines based on your preference
3. Time Resolution
- Match chart timeframe: for aligned analysis
- Use higher timeframe: for filtering signals
- Lower timeframe: for earlier entries but more noise
4. Color Customization
- Normal bullish/bearish colors: represent standard momentum
- High/low marker line colors: customize visibility
- Peak marker colors: adjust for your visual preference
- Consider chart background when selecting colors
Best Practices
1. Signal Confirmation
- Wait for zero-line crosses to confirm trend changes
- Look for peak formations to identify potential reversals
- Check for boundary breaks to confirm strong momentum
- Use custom timeframe option for higher timeframe confirmation
2. Timeframe Selection
- Lower timeframes: more signals, potential noise
- Higher timeframes: cleaner signals, less frequent
- Custom resolution: allows comparison across timeframes
- Consider using multiple timeframes for confirmation
3. Market Context
- Strong bullish phase: positive histogram breaking above marker line
- Strong bearish phase: negative histogram breaking below marker line
- Histogram approaching zero: potential trend change
- Peak formations: potential exhaustion points
4. Combining with Other Indicators
- Use with trend indicators for confirmation
- Pair with oscillators for overbought/oversold conditions
- Combine with volume analysis for validation
- Consider support/resistance levels with boundary lines
Advanced Trading Strategies
1. Boundary Break Strategy
- Enter long when histogram breaks above previous high marker line
- Enter short when histogram breaks below previous low marker line
- Use zero-line as initial stop-loss reference
- Take profits at formation of opposing peaks
2. Peak Trading Strategy
- Identify significant peaks with triangular markers
- Look for consecutive lower peaks in bullish phases for shorting opportunities
- Look for consecutive higher troughs in bearish phases for buying opportunities
- Use zero-line crosses as confirmation
3. Multi-Timeframe Strategy
- Use custom resolution for higher timeframe MACD trend
- Enter trades when both timeframes align
- Higher timeframe for trend direction
- Chart timeframe for precise entry
4. Histogram Color Strategy
- Enter long when histogram turns bright green (increasing momentum)
- Enter short when histogram turns bright red (increasing momentum)
- Exit when color intensity fades (decreasing momentum)
- Use marker lines as dynamic support/resistance
Practical Analysis Examples
Bullish Market Scenario
- Histogram crosses above zero line
- Green bars grow in height and intensity
- High marker line forms steps upward
- Peak triangles appear at local maxima
- Background highlights appear at significant momentum peaks
Bearish Market Scenario
- Histogram crosses below zero line
- Red bars grow in depth and intensity
- Low marker line forms steps downward
- Peak triangles appear at local minima
- Background highlights appear at significant momentum troughs
Consolidation Scenario
- Histogram oscillates around zero line
- Bar colors alternate frequently
- Marker lines remain relatively flat
- Few or no new peak highlights appear
- Histogram values remain small
Understanding Market Dynamics Through MACD Boundary PSA
At its core, this indicator provides a unique lens to visualize market momentum and boundaries:
1. Momentum Strength: The histogram height/depth shows the strength of current momentum, with color intensity providing additional context about acceleration or deceleration.
2. Dynamic Boundaries: The marker lines create a visual representation of the "high water marks" of momentum in both directions, helping to identify when markets are making new momentum extremes.
3. Exhaustion Signals: The peak detection system highlights moments where momentum has reached a local maximum or minimum, often precursors to reversals or consolidations.
4. Trend Confirmation: The histogram color and intensity provide instant feedback about the current trend direction and strength, with special colors highlighting particularly significant moves.
Remember:
- Combine signals from histogram, marker lines, and peak formations
- Use appropriate timeframe settings for your trading style
- Customize the indicator to match your visual preferences
- Consider market conditions and correlate with price action
This indicator works best when:
- Used as part of a comprehensive trading system
- Combined with proper risk management
- Applied with an understanding of current market conditions
- Signals are confirmed by price action and other indicators
**DISCLAIMER**: This indicator and its signals are intended solely for educational and informational purposes. They do not constitute financial advice. Trading involves significant risk of loss. Always conduct your own analysis and consult with financial professionals before making trading decisions.
MACD Highs and Lows - Dynamic Support & ResistanceDescription:
Enhance your trading strategy with the MACD Highs and Lows indicator, designed to identify dynamic support and resistance levels based on MACD crossovers. This tool plots key price levels triggered by shifts in MACD momentum, helping traders spot potential reversal zones, breakout points, and trend confirmation signals.
Key Features
Dynamic Levels: Automatically plots recent highs/lows when MACD crosses above/below the zero line.
Customizable MACD Parameters:
Adjustable fast/slow lengths (default: 12/26).
Choose between SMA or EMA for oscillator/signal line.
Flexible signal smoothing (1-50 periods).
Visual Clarity:
Clear green/red lines for highs and lows.
Tracks both price extremes and adjacent candle levels (e.g., high-of-low-bar, low-of-high-bar).
Multi-Timeframe Utility: Works across charts for swing trading, scalping, or trend analysis.
How It Works
Bullish Signal: When MACD crosses above zero, the indicator marks the recent lowest low (support) and its corresponding high.
Bearish Signal: When MACD crosses below zero, it plots the recent highest high (resistance) and its corresponding low.
Levels persist until the next crossover, creating actionable reference zones.
Use Cases
Trend Confirmation: Validate breakouts when price closes above/below plotted levels.
Stop Loss Placement: Set stops beyond recent dynamic highs/lows.
Divergence Detection: Spot discrepancies between MACD momentum and price action.
Settings Tips:
Increase Fast Length for responsiveness or Slow Length for smoother signals.
Use EMA for faster reactions, SMA for reduced noise.
AO/AC Trading Zones Strategy [Skyrexio] Overview
AO/AC Trading Zones Strategy leverages the combination of Awesome Oscillator (AO), Acceleration/Deceleration Indicator (AC), Williams Fractals, Williams Alligator and Exponential Moving Average (EMA) to obtain the high probability long setups. Moreover, strategy uses multi trades system, adding funds to long position if it considered that current trend has likely became stronger. Combination of AO and AC is used for creating so-called trading zones to create the signals, while Alligator and Fractal are used in conjunction as an approximation of short-term trend to filter them. At the same time EMA (default EMA's period = 100) is used as high probability long-term trend filter to open long trades only if it considers current price action as an uptrend. More information in "Methodology" and "Justification of Methodology" paragraphs. The strategy opens only long trades.
Unique Features
No fixed stop-loss and take profit: Instead of fixed stop-loss level strategy utilizes technical condition obtained by Fractals and Alligator to identify when current uptrend is likely to be over. In some special cases strategy uses AO and AC combination to trail profit (more information in "Methodology" and "Justification of Methodology" paragraphs)
Configurable Trading Periods: Users can tailor the strategy to specific market windows, adapting to different market conditions.
Multilayer trades opening system: strategy uses only 10% of capital in every trade and open up to 5 trades at the same time if script consider current trend as strong one.
Short and long term trend trade filters: strategy uses EMA as high probability long-term trend filter and Alligator and Fractal combination as a short-term one.
Methodology
The strategy opens long trade when the following price met the conditions:
1. Price closed above EMA (by default, period = 100). Crossover is not obligatory.
2. Combination of Alligator and Williams Fractals shall consider current trend as an upward (all details in "Justification of Methodology" paragraph)
3. Both AC and AO shall print two consecutive increasing values. At the price candle close which corresponds to this condition algorithm opens the first long trade with 10% of capital.
4. If combination of Alligator and Williams Fractals shall consider current trend has been changed from up to downtrend, all long trades will be closed, no matter how many trades has been opened.
5. If AO and AC both continue printing the rising values strategy opens the long trade on each candle close with 10% of capital while number of opened trades reaches 5.
6. If AO and AC both has printed 5 rising values in a row algorithm close all trades if candle's low below the low of the 5-th candle with rising AO and AC values in a row.
Script also has additional visuals. If second long trade has been opened simultaneously the Alligator's teeth line is plotted with the green color. Also for every trade in a row from 2 to 5 the label "Buy More" is also plotted just below the teeth line. With every next simultaneously opened trade the green color of the space between teeth and price became less transparent.
Strategy settings
In the inputs window user can setup strategy setting:
EMA Length (by default = 100, period of EMA, used for long-term trend filtering EMA calculation).
User can choose the optimal parameters during backtesting on certain price chart.
Justification of Methodology
Let's explore the key concepts of this strategy and understand how they work together. We'll begin with the simplest: the EMA.
The Exponential Moving Average (EMA) is a type of moving average that assigns greater weight to recent price data, making it more responsive to current market changes compared to the Simple Moving Average (SMA). This tool is widely used in technical analysis to identify trends and generate buy or sell signals. The EMA is calculated as follows:
1.Calculate the Smoothing Multiplier:
Multiplier = 2 / (n + 1), Where n is the number of periods.
2. EMA Calculation
EMA = (Current Price) × Multiplier + (Previous EMA) × (1 − Multiplier)
In this strategy, the EMA acts as a long-term trend filter. For instance, long trades are considered only when the price closes above the EMA (default: 100-period). This increases the likelihood of entering trades aligned with the prevailing trend.
Next, let’s discuss the short-term trend filter, which combines the Williams Alligator and Williams Fractals. Williams Alligator
Developed by Bill Williams, the Alligator is a technical indicator that identifies trends and potential market reversals. It consists of three smoothed moving averages:
Jaw (Blue Line): The slowest of the three, based on a 13-period smoothed moving average shifted 8 bars ahead.
Teeth (Red Line): The medium-speed line, derived from an 8-period smoothed moving average shifted 5 bars forward.
Lips (Green Line): The fastest line, calculated using a 5-period smoothed moving average shifted 3 bars forward.
When the lines diverge and align in order, the "Alligator" is "awake," signaling a strong trend. When the lines overlap or intertwine, the "Alligator" is "asleep," indicating a range-bound or sideways market. This indicator helps traders determine when to enter or avoid trades.
Fractals, another tool by Bill Williams, help identify potential reversal points on a price chart. A fractal forms over at least five consecutive bars, with the middle bar showing either:
Up Fractal: Occurs when the middle bar has a higher high than the two preceding and two following bars, suggesting a potential downward reversal.
Down Fractal: Happens when the middle bar shows a lower low than the surrounding two bars, hinting at a possible upward reversal.
Traders often use fractals alongside other indicators to confirm trends or reversals, enhancing decision-making accuracy.
How do these tools work together in this strategy? Let’s consider an example of an uptrend.
When the price breaks above an up fractal, it signals a potential bullish trend. This occurs because the up fractal represents a shift in market behavior, where a temporary high was formed due to selling pressure. If the price revisits this level and breaks through, it suggests the market sentiment has turned bullish.
The breakout must occur above the Alligator’s teeth line to confirm the trend. A breakout below the teeth is considered invalid, and the downtrend might still persist. Conversely, in a downtrend, the same logic applies with down fractals.
In this strategy if the most recent up fractal breakout occurs above the Alligator's teeth and follows the last down fractal breakout below the teeth, the algorithm identifies an uptrend. Long trades can be opened during this phase if a signal aligns. If the price breaks a down fractal below the teeth line during an uptrend, the strategy assumes the uptrend has ended and closes all open long trades.
By combining the EMA as a long-term trend filter with the Alligator and fractals as short-term filters, this approach increases the likelihood of opening profitable trades while staying aligned with market dynamics.
Now let's talk about the trading zones concept and its signals. To understand this we need to briefly introduce what is AO and AC. The Awesome Oscillator (AO), developed by Bill Williams, is a momentum indicator designed to measure market momentum by contrasting recent price movements with a longer-term historical perspective. It helps traders detect potential trend reversals and assess the strength of ongoing trends.
The formula for AO is as follows:
AO = SMA5(Median Price) − SMA34(Median Price)
where:
Median Price = (High + Low) / 2
SMA5 = 5-period Simple Moving Average of the Median Price
SMA 34 = 34-period Simple Moving Average of the Median Price
The Acceleration/Deceleration (AC) Indicator, introduced by Bill Williams, measures the rate of change in market momentum. It highlights shifts in the driving force of price movements and helps traders spot early signs of trend changes. The AC Indicator is particularly useful for identifying whether the current momentum is accelerating or decelerating, which can indicate potential reversals or continuations. For AC calculation we shall use the AO calculated above is the following formula:
AC = AO − SMA5(AO) , where SMA5(AO)is the 5-period Simple Moving Average of the Awesome Oscillator
When the AC is above the zero line and rising, it suggests accelerating upward momentum.
When the AC is below the zero line and falling, it indicates accelerating downward momentum.
When the AC is below zero line and rising it suggests the decelerating the downtrend momentum. When AC is above the zero line and falling, it suggests the decelerating the uptrend momentum.
Now let's discuss the trading zones concept and how it can create the signal. Zones are created by the combination of AO and AC. We can divide three zone types:
Greed zone: when the AO and AC both are rising
Red zone: when the AO and AC both are decreasing
Gray zone: when one of AO or AC is rising, the other is falling
Gray zone is considered as uncertainty. AC and AO are moving in the opposite direction. Strategy skip such price action to decrease the chance to stuck in the losing trade during potential sideways. Red zone is also not interesting for the algorithm because both indicators consider the trend as bearish, but strategy opens only long trades. It is waiting for the green zone to increase the chance to open trade in the direction of the potential uptrend. When we have 2 candles in a row in the green zone script executes a long trade with 10% of capital.
Two green zone candles in a row is considered by algorithm as a bullish trend, but now so strong, that's the reason why trade is going to be closed when the combination of Alligator and Fractals will consider the the trend change from bullish to bearish. If id did not happens, algorithm starts to count the green zone candles in a row. When we have 5 in a row script change the trade closing condition. Such situation is considered is a high probability strong bull market and all trades will be closed if candle's low will be lower than fifth green zone candle's low. This is used to increase probability to secure the profit. If long trades are initiated, the strategy continues utilizing subsequent signals until the total number of trades reaches a maximum of 5. Each trade uses 10% of capital.
Why we use trading zones signals? If currently strategy algorithm considers the high probability of the short-term uptrend with the Alligator and Fractals combination pointed out above and the long-term trend is also suggested by the EMA filter as bullish. Rising AC and AO values in the direction of the most likely main trend signaling that we have the high probability of the fastest bullish phase on the market. The main idea is to take part in such rapid moves and add trades if this move continues its acceleration according to indicators.
Backtest Results
Operating window: Date range of backtests is 2023.01.01 - 2024.12.31. It is chosen to let the strategy to close all opened positions.
Commission and Slippage: Includes a standard Binance commission of 0.1% and accounts for possible slippage over 5 ticks.
Initial capital: 10000 USDT
Percent of capital used in every trade: 10%
Maximum Single Position Loss: -9.49%
Maximum Single Profit: +24.33%
Net Profit: +4374.70 USDT (+43.75%)
Total Trades: 278 (39.57% win rate)
Profit Factor: 2.203
Maximum Accumulated Loss: 668.16 USDT (-5.43%)
Average Profit per Trade: 15.74 USDT (+1.37%)
Average Trade Duration: 60 hours
How to Use
Add the script to favorites for easy access.
Apply to the desired timeframe and chart (optimal performance observed on 4h BTC/USDT).
Configure settings using the dropdown choice list in the built-in menu.
Set up alerts to automate strategy positions through web hook with the text: {{strategy.order.alert_message}}
Disclaimer:
Educational and informational tool reflecting Skyrex commitment to informed trading. Past performance does not guarantee future results. Test strategies in a simulated environment before live implementation
These results are obtained with realistic parameters representing trading conditions observed at major exchanges such as Binance and with realistic trading portfolio usage parameters.
Midnight Range Standard DeviationsCredit to Lex Fx for the basic framework of this script
This indicator is designed to assist traders in identifying potential trading opportunities based on the Intraday Concurrency Technique (ICT) concepts, specifically the midnight range deviations and their relationship to Fibonacci levels. It builds upon the work of Lex-FX, whom we gratefully acknowledge for the original concept and inspiration for this indicator.
Core Concept: ICT Midnight Range
The core of this indicator revolves around the concept of the midnight range. According to ICT, the high and low formed in a specific time window (typically the first 30 minutes after midnight, New York Time) can serve as a key reference point for intraday price action. The indicator identifies this range and projects potential support and resistance levels based on deviations from this range, combined with Fibonacci ratios.
How ICT Uses Midnight Range Deviations
ICT methodology often involves looking for price to move away from the initial midnight range, then return to it, or deviate beyond it, as key areas for potential entries.
Range Identification: The indicator automatically identifies the high and low of the midnight range (00:00 - 00:30 NY Time).
Deviation Levels: The indicator calculates and displays deviation levels based on multiples of the initial midnight range. These levels are often used to identify potential areas of support and resistance, as well as potential targets for price movement. These levels can be set in the additional fib levels section, which can be configured in increments of .5 deviations all the way up to 12 deviations.
Fibonacci Confluence: ICT often emphasizes the confluence of multiple factors. This indicator adds Fibonacci levels to the midnight range deviations. This allows traders to identify areas where Fibonacci retracements or extensions align with the deviation levels, potentially creating stronger areas of support or resistance.
Looking for Sweeps: ICT often uses these levels to look for times that the high and low are swept as potential areas of liquidity, indicating the start of potential continuations.
Time-Based Analysis: The time at which price interacts with these levels can also be significant in ICT. The indicator provides options to extend the range lines to specific times (e.g., 3 hours, 6 hours, 10 hours, 12 hours, or a custom defined time) after midnight, allowing traders to focus on specific periods of the trading day.
Indicator Settings Explained:
Time Zone (TZ): Defines the time zone used for calculating the midnight range. The default is "America/New_York".
Range High Color, Range Low Color, Range Mid Color: Customize the colors of the high, low, and mid-range lines.
Range Fill Color: Sets the fill color for the area between the range high and low.
Line Style: Choose the style of the range lines (solid, dashed, dotted).
Range Line Thickness: Adjust the thickness of the range lines for better visibility.
Show Fibonacci Levels: Enable or disable the display of Fibonacci deviation levels.
Fib Up Color, Fib Down Color: Customize the colors of the Fibonacci levels above (up) and below (down) the midnight range.
Show Trendline: Enables a trendline that plots the close price, colored according to whether the price is above the high, below the low, or within the midnight range.
Show Range Lines, Show Range Labels: Toggles the visibility of the range lines and their associated labels.
Label Size: Adjust the size of the labels for better readability.
Hide Prices: Option to display only the deviation values on labels, hiding price values.
Place Fibonacci Labels on Left Side: Option to switch label position from right side to left side.
Extend Range To (Hours from Midnight): This section gives you a wide variety of options on how far you want to extend the range to, you can do 3,6,10,12, and 23 hours. Alternatively, you can select the "Use Custom Length" and set a specific time in hours.
Additional Fib Levels: This section allows the trader to set additional deviation points in increments of .5 deviations from .5 all the way up to 12 deviations
TradingView Community Guidelines Compliance:
This indicator description adheres to the TradingView community guidelines by:
Being educational: It explains the ICT methodology and how the indicator can be used in trading.
Being transparent: It clearly describes all the indicator's settings and their purpose.
Providing credit: It acknowledges Lex-FX as the original author of the concept.
Avoiding misleading claims: It does not guarantee profits or imply that the indicator is a "holy grail."
Disclaimer: Usage of this indicator and the information provided is at your own risk. The author is not responsible for any losses incurred as a result of using this indicator.
Important Considerations:
This indicator is intended for educational purposes and to assist in applying the ICT methodology.
It should not be used as a standalone trading system.
Always combine this indicator with other forms of technical analysis and risk management techniques.
Backtest thoroughly on your chosen market and timeframe before using in live trading.
Trading involves risk. Only trade with capital you can afford to lose.
Turtle Soup ICT Strategy [TradingFinder] FVG + CHoCH/CSD🔵 Introduction
The ICT Turtle Soup trading setup, designed in the ICT style, operates by hunting or sweeping liquidity zones to exploit false breakouts and failed breakouts in key liquidity Zones, such as recent highs, lows, or major support and resistance levels.
This setup identifies moments when the price breaches these liquidity zones, triggering stop orders placed (Stop Hunt) by other traders, and then quickly reverses direction. These movements are often associated with liquidity sweeps that create temporary market imbalances.
The reversal is typically confirmed by one of three structural shifts : a Market Structure Shift (MSS), a Change of Character (CHoCH), or a break of the Change in State of Delivery (CISD). Each of these structural shifts provides a reliable signal to interpret market intent and align trading decisions with the expected price movement. After the structural shift, the price frequently pullback to a Fair Value Gap (FVG), offering a precise entry point for trades.
By integrating key concepts such as liquidity, liquidity sweeps, stop order activation, structural shifts (MSS, CHoCH, CISD), and price imbalances, the ICT Turtle Soup setup enables traders to identify reversal points and key entry zones with high accuracy.
This strategy is highly versatile, making it applicable across markets such as forex, stocks, cryptocurrencies, and futures. It offers traders a robust and systematic approach to understanding price movements and optimizing their trading strategies
🟣 Bullish and Bearish Setups
Bullish Setup : The price first sweeps below a Sell-Side Liquidity (SSL) zone, then reverses upward after forming an MSS or CHoCH, and finally pulls back to an FVG, creating a buying opportunity.
Bearish Setup : The price first sweeps above a Buy-Side Liquidity (BSL) zone, then reverses downward after forming an MSS or CHoCH, and finally pulls back to an FVG, creating a selling opportunity.
🔵 How to Use
To effectively utilize the ICT Turtle Soup trading setup, begin by identifying key liquidity zones, such as recent highs, lows, or support and resistance levels, in higher timeframes.
Then, monitor lower timeframes for a Liquidity Sweep and confirmation of a Market Structure Shift (MSS) or Change of Character (CHoCH).
After the structural shift, the price typically pulls back to an FVG, offering an optimal trade entry point. Below, the bullish and bearish setups are explained in detail.
🟣 Bullish Turtle Soup Setup
Identify Sell-Side Liquidity (SSL) : In a higher timeframe (e.g., 1-hour or 4-hour), identify recent price lows or support levels that serve as SSL zones, typically the location of stop-loss orders for traders.
Observe a Liquidity Sweep : On a lower timeframe (e.g., 15-minute or 30-minute), the price must move below one of these liquidity zones and then reverse. This movement indicates a liquidity sweep.
Confirm Market Structure Shift : After the price reversal, look for a structural shift (MSS or CHoCH) indicated by the formation of a Higher Low (HL) and Higher High (HH).
Enter the Trade : Once the structural shift is confirmed, the price typically pulls back to an FVG. Enter a buy trade in this zone, set a stop-loss slightly below the recent low, and target Buy-Side Liquidity (BSL) in the higher timeframe for profit.
🟣 Bearish Turtle Soup Setup
Identify Buy-Side Liquidity (BSL) : In a higher timeframe, identify recent price highs or resistance levels that serve as BSL zones, typically the location of stop-loss orders for traders.
Observe a Liquidity Sweep : On a lower timeframe, the price must move above one of these liquidity zones and then reverse. This movement indicates a liquidity sweep.
Confirm Market Structure Shift : After the price reversal, look for a structural shift (MSS or CHoCH) indicated by the formation of a Lower High (LH) and Lower Low (LL).
Enter the Trade : Once the structural shift is confirmed, the price typically pulls back to an FVG. Enter a sell trade in this zone, set a stop-loss slightly above the recent high, and target Sell-Side Liquidity (SSL) in the higher timeframe for profit.
🔵 Settings
Higher TimeFrame Levels : This setting allows you to specify the higher timeframe (e.g., 1-hour, 4-hour, or daily) for identifying key liquidity zones.
Swing period : You can set the swing detection period.
Max Swing Back Method : It is in two modes "All" and "Custom". If it is in "All" mode, it will check all swings, and if it is in "Custom" mode, it will check the swings to the extent you determine.
Max Swing Back : You can set the number of swings that will go back for checking.
FVG Length : Default is 120 Bar.
MSS Length : Default is 80 Bar.
FVG Filter : This refines the number of identified FVG areas based on a specified algorithm to focus on higher quality signals and reduce noise.
Types of FVG filter s:
Very Aggressive Filter: Adds a condition where, for an upward FVG, the last candle's highest price must exceed the middle candle's highest price, and for a downward FVG, the last candle's lowest price must be lower than the middle candle's lowest price. This minimally filters out FVGs.
Aggressive Filter: Builds on the Very Aggressive mode by ensuring the middle candle is not too small, filtering out more FVGs.
Defensive Filter: Adds criteria regarding the size and structure of the middle candle, requiring it to have a substantial body and specific polarity conditions, filtering out a significant number of FVGs.
Very Defensive Filter: Further refines filtering by ensuring the first and third candles are not small-bodied doji candles, retaining only the highest quality signals.
In the indicator settings, you can customize the visibility of various elements, including MSS, FVG, and HTF Levels. Additionally, the color of each element can be adjusted to match your preferences. This feature allows traders to tailor the chart display to their specific needs, enhancing focus on the key data relevant to their strategy.
🔵 Conclusion
The ICT Turtle Soup trading setup is a powerful tool in the ICT style, enabling traders to exploit false breakouts in key liquidity zones. By combining concepts of liquidity, liquidity sweeps, market structure shifts (MSS and CHoCH), and pullbacks to FVG, this setup helps traders identify precise reversal points and execute trades with reduced risk and increased accuracy.
With applications across various markets, including forex, stocks, crypto, and futures, and its customizable indicator settings, the ICT Turtle Soup setup is ideal for both beginner and advanced traders. By accurately identifying liquidity zones in higher timeframes and confirming structure shifts in lower timeframes, this setup provides a reliable strategy for navigating volatile market conditions.
Ultimately, success with this setup requires consistent practice, precise market analysis, and proper risk management, empowering traders to make smarter decisions and achieve their trading goals.
Intrabar BoxPlotThe Intrabar BoxPlot publication highlights an uncommon technique by displaying statistical intrabar Lower Timeframe (LTF) values on the chart.
🔶 USAGE
🔹 Middle 50% Boxes
By showing the middle 50% intrabar values through a box, we can more easily see where the intrabar activity is mainly situated.
The middle 50% intrabar values are referred to from here on as Interquartile range (IQR).
In this example, the successive IQRs form a channel where the price eventually breaks out.
Disproportionately distributed values can give insights which can be used to find potential support/resistance areas.
IQR gaps can give valuable information as well. Potentially, the price can return to these gaps.
Seeing the IQR areas against regular candles gives an alternative image of the underlying price movements.
🔹 Highest volume Price level
The script displays the price level with the highest volume situated, dependable on the user's source setting. Setting the source at 'close' will only display intrabar close values; the same goes for high, low, ...
As seen in the above example, the volume levels can aid in finding support/resistance.
🔹 Median
The location of the median off all intrabar values is displayed as a coloured dot: green when the close price is higher than the opening price and red if otherwise. The median can give valuable insights into price movements.
🔹 Outliers
Medium (white dots) and extreme (white X) outliers, in combination with the IQR box, can help identify potential areas of interest.
🔹 Volume Delta
When there is a discrepancy between the delta volume and direction of the candle, this will be displayed as follows:
Green candle: when the sum of the volume of red intrabars is higher than the sum of the volume of green intrabars, the candle will be coloured orange.
Red candle: when the sum of the volume of green intrabars is higher than the sum of the volume of red intrabars, the candle will be coloured blue.
🔹 Highlight Boxplot only
Probably the easiest way to display boxplot only is by changing the Bar's style to Bars .
🔶 DETAILS
All intrabar values (Lower TimeFrame - LTF) are sorted and evaluated. Values can be close , high , low , ... by selecting this in Settings ( source ).
The middle 50% of all values are displayed as a box; this contains the values between percentile 25 (p25) and percentile 75 (p75). The value of percentile rank 75 means 75% of all values are lower. The value of percentile rank 25 means 25% of all values are lower, or 75% is higher.
The difference between p75 and p25 is also known as Interquartile range (IQR)
IQR is used to check for outliers.
Wiki: Boxplot , Interquartile range
Extreme high: maximum value, higher than p75 + IQR*3
Max outlier high: maximum value, higher than p75 + IQR*1.5 but lower than p75 + IQR*3
Max: maximum value, lower than p75 + IQR*1.5
Min: minimum value, higher than p25 - IQR*1.5
Min outlier low: minimum value, lower than p25 - IQR*1.5 but higher than p25 - IQR*3
Extreme low: minimum value, lower than p25 - IQR*3
Max and min must not be interpreted with the current candle high/low.
🔹 Example: Length of chart-puppets
The following example can make it easier to digest. Forty "chart-puppets" are sorted by their length.
The p25 value is 97
The p50 value is 120
The p75 value is 149
75% of all "chart-puppets" are smaller than p75, and 25% is larger than p75.
50% of all "chart-puppets" are smaller than p50, and 50% is larger than p50 (= median).
25% of all "chart-puppets" are smaller than p25, and 75% is larger than p25.
IQR = 149 - 97 = 52
Extreme outlier limit max: p75 + IQR*3 = 149 + 52*3 = 305
Mild outlier limit max: p75 + IQR*1.5 = 149 + 52*1.5 = 227
Mild outlier limit min: p25 - IQR*1.5 = 97 - 52*1.5 = 19
Extreme outlier limit min: p25 - IQR*3 = 97 - 52*3 = -59
In this example there are no outliers to be found, all values are located between p25 - IQR*1.5 (19) and p75 + IQR*1.5. (227)
🔹 Source settings
Note that results are dependable on the chosen source (settings). When, for example, close is chosen as the source, only intrabar close prices are included. This means a low or high can stretch further then the min or max.
Here we can see different results with different source settings
🔹 LTF settings
When 'Auto' is enabled (Settings, LTF), the LTF will be the nearest possible x times smaller TF than the current TF. When 'Premium' is disabled, the minimum TF will always be 1 minute to ensure TradingView plans lower than Premium don't get an error.
Examples with current Daily TF (when Premium is enabled):
500 : 3 minute LTF
1500 (default): 1 minute LTF
5000: 30 seconds LTF (1 minute if Premium is disabled)
🔶 SETTINGS
Source: Set source at close, high, low,...
🔹 LTF
LTF: LTF setting
Auto + multiple: Adjusts the initial set LTF
Premium: Enable when your TradingView plan is Premium or higher
🔹 Intrabar Delta : Colors, dependable on different circumstances.
Up: Price goes up, with more bullish than bearish intrabar volume.
Up-: Price goes up, with more bearish than bullish intrabar volume.
Down: Price goes down, with more bearish than bullish intrabar volume.
Down+: Price goes down, with more bullish than bearish intrabar volume.
🔹 Table
Show table: Show details at the top right corner
Show TF: Show LTF at the bottom right corner
Text color/table size
See DETAILS for more information
Overnight High/LowThe script identifies the Overnight High (the highest price) and Overnight Low (the lowest price) for a trading instrument during a specified overnight session. It then plots these levels on the chart for reference in subsequent trading sessions.
Key Features:
Time Settings:
The script defines the start (startHour) and end (endHour + endMinute) times for the overnight session.
The session spans across two calendar days, such as 5:00 PM (17:00) to 9:30 AM (09:30).
Tracking High and Low:
During the overnight session, the script dynamically tracks:
Overnight High: The highest price reached during the session.
Overnight Low: The lowest price reached during the session.
Reset Mechanism:
After the overnight session ends (at the specified end time), the script resets the overnightHigh and overnightLow variables, preparing for the next session.
Visual Representation:
The script uses horizontal dotted lines to plot:
A green line for the Overnight High.
A red line for the Overnight Low.
These lines extend to the right of the chart, providing visual reference points for traders.
How It Works:
Session Detection:
The script checks whether the current time falls within the overnight session:
If the hour is greater than or equal to the start hour (e.g., 17:00).
Or if the hour is less than or equal to the end hour (e.g., 09:30), considering the next day.
The end minute (e.g., 30 minutes past the hour) is also considered for precision.
High and Low Calculation:
During the overnight session:
If the overnightHigh is not yet defined, it initializes with the current candle's high.
If already defined, it updates by comparing the current candle's high to the existing overnightHigh using the math.max function.
Similarly, overnightLow is initialized or updated using the math.min function.
Post-Session Reset:
After the session ends, the script clears the overnightHigh and overnightLow variables by setting them to na (not available).
Line Drawing:
The script draws horizontal dotted lines for the Overnight High and Low during and after the session.
The lines extend indefinitely to the right of the chart.
Benefits:
Visual Aid: Helps traders quickly identify overnight support and resistance levels, which are critical for intraday trading.
Automation: Removes the need for manually plotting these levels each day.
Customizable: Time settings can be adjusted to match different markets or trading strategies.
This script is ideal for traders who use the overnight range as part of their analysis for breakouts, reversals, or trend continuation strategies.
Monthly Breakout StrategyThis Monthly High/Low Breakout Strategy is designed to take long or short positions based on breakouts from the high or low of the previous month. Users can select whether they want to go long at a breakout above the previous month’s high, short at a breakdown below the previous month’s low, or use the reverse logic. Additionally, it includes a month filter, allowing trades to be executed only during user-specified months.
Breakout strategies, particularly those based on monthly highs and lows, aim to capitalize on price momentum. These systems rely on the assumption that once a significant price level is breached (such as the previous month's high or low), the market is likely to continue moving in the same direction due to increased volatility and trend-following behaviors by traders. Studies have demonstrated the potential effectiveness of breakout strategies in financial markets.
Scientific Evidence Supporting Breakout Strategies:
Momentum in Financial Markets:
Research on momentum-based strategies, which include breakout trading, shows that securities breaking key levels of support or resistance tend to continue their price movement in the direction of the breakout. Jegadeesh and Titman (1993) found that stocks with strong performance over a given period tend to continue performing well in subsequent periods, a principle also applied to breakout strategies.
Behavioral Finance:
The psychological factor of herd behavior is one of the driving forces behind breakout strategies. When prices break out of a key level (such as a monthly high), it triggers increased buying or selling pressure as traders join the trend. Barberis, Shleifer, and Vishny (1998) explained how cognitive biases, such as overconfidence and sentiment, can amplify price trends, which breakout strategies attempt to exploit.
Market Efficiency:
While markets are generally efficient, periods of inefficiency can occur, particularly around the breakouts of significant price levels. These inefficiencies often result in temporary price trends, which breakout strategies can exploit before the market corrects itself (Fama, 1970).
Risk Considerations:
Despite the potential for profit, the Monthly Breakout Strategy comes with several risks:
False Breakouts:
One of the most common risks in breakout strategies is the occurrence of false breakouts. These happen when the price temporarily moves above (or below) a key level but quickly reverses direction, causing losses for traders who entered positions too early. This is particularly risky in low-volatility environments.
Market Volatility:
Monthly breakout strategies rely on momentum, which may not be consistent across different market conditions. During periods of low volatility, price breakouts might lack the follow-through required for the strategy to succeed, leading to poor performance.
Whipsaw Risk:
The strategy is vulnerable to whipsaw markets, where prices oscillate around key levels without establishing a clear direction. This can result in frequent entry and exit signals that lead to losses, especially if trading costs are not managed properly.
Overfitting to Past Data:
If the month-selection filter is overly optimized based on historical data, the strategy may suffer from overfitting—performing well in backtests but poorly in real-time trading. This happens when strategies are tailored to past market conditions that may not repeat.
Conclusion:
While monthly breakout strategies can be effective in markets with strong momentum, they are subject to several risks, including false breakouts, volatility dependency, and whipsaw behavior. It is crucial to backtest this strategy thoroughly and ensure it aligns with your risk tolerance before implementing it in live trading.
References:
Jegadeesh, N., & Titman, S. (1993). Returns to Buying Winners and Selling Losers: Implications for Stock Market Efficiency. Journal of Finance, 48(1), 65-91.
Barberis, N., Shleifer, A., & Vishny, R. (1998). A Model of Investor Sentiment. Journal of Financial Economics, 49(3), 307-343.
Fama, E. F. (1970). Efficient Capital Markets: A Review of Theory and Empirical Work. Journal of Finance, 25(2), 383-417.
Pure Price Action ICT Tools [LuxAlgo]The Pure Price Action ICT Tools indicator is designed for pure price action analysis, automatically identifying real-time market structures, liquidity levels, order & breaker blocks, and liquidity voids.
Its unique feature lies in its exclusive reliance on price patterns, without being constrained by any user-defined inputs, ensuring a robust and objective analysis of market dynamics.
🔶 MARKET STRUCTURES
A Market Structure Shift, also known as a Change of Character (CHoCH), is a pivotal event in price action analysis indicating a potential change in market sentiment or direction. An MSS occurs when the price reverses from an established trend, signaling that the prevailing trend may be losing momentum and a reversal might be underway. This shift is often identified by key technical patterns, such as a higher low in a downtrend or a lower high in an uptrend, which indicate a weakening of the current trend's strength.
A Break of Structure typically indicates the continuation of the current market trend. This event occurs when the price decisively moves beyond a previous swing high or low, confirming the strength of the prevailing trend. In an uptrend, a BOS is marked by the price breaking above a previous high, while in a downtrend, it is identified by the price breaking below a previous low.
While a Market Structure Shift (MSS) can indicate a potential trend reversal and a Break of Structure (BOS) often confirms trend continuation, they do not assure a complete reversal or continuation. MSS and BOS levels can also function as liquidity zones or areas of price consolidation rather than definitively signaling a change in market direction. Traders should approach these signals cautiously and validate them with additional factors before making trading decisions. For further details on other components of the tool, please refer to the following sections.
🔶 ORDER & BREAKER BLOCKS
Order and Breaker Blocks are key concepts in price action analysis that help traders identify significant levels in the market structure.
Order Blocks are specific price zones where significant buying or selling activity has occurred. These zones often represent the actions of large institutional traders or market makers, who execute substantial orders that impact the market.
Breaker Blocks are specific price zones where a strong reversal occurs, causing a break in the prevailing market structure. These blocks indicate areas where the price encountered significant resistance or support, leading to a reversal.
In summary, Order and Breaker Blocks are essential tools in price action analysis, providing insights into significant market levels influenced by institutional trading activities. These blocks help traders make informed decisions about potential support and resistance levels, trend reversals, and breakout confirmations.
🔶 BUYSIDE & SELLSIDE LIQUIDITY
Both buy-side and sell-side liquidity zones are critical for identifying potential turning points in the market. These zones are where significant buying or selling interest is concentrated, influencing future price movements.
In summary, buy-side and sell-side liquidity provide crucial insights into market demand and supply dynamics, helping traders make informed decisions based on the availability of orders at different price levels.
🔶 LIQUIDITY VOIDS
Liquidity voids are gaps or areas on a price chart where there is a lack of trading activity. These voids represent zones with minimal to no buy or sell orders, often resulting in sharp price movements when the market enters these areas.
In summary, liquidity voids are crucial areas on a price chart characterized by a lack of trading activity. These voids can lead to rapid price movements and increased volatility, making them essential considerations for traders in their analysis and decision-making processes.
🔶 SWING POINTS
Reversal price points are commonly referred to as swing points. Traders often analyze historical swing points to discern market trends and pinpoint potential trade entry and exit points.
Do note that in this script these are subject to backpainting, that is they are not located where they are detected.
The detection of swing points and the unique feature of this script rely exclusively on price action, eliminating the need for numerical user-defined settings. The process begins with detecting short-term swing points:
Short-Term Swing High (STH): Identified as a price peak surrounded by lower highs on both sides.
Short-Term Swing Low (STL): Recognized as a price trough surrounded by higher lows on both sides.
Intermediate-term and long-term swing points are detected using the same approach but with a slight modification. Instead of directly analyzing price candles, previously detected short-term swing points are utilized. For intermediate-term swing points, short-term swing points are analyzed, while for long-term swing points, intermediate-term ones are used.
This method ensures a robust and objective analysis of market dynamics, offering traders reliable insights into market structures. Detected swing points serve as the foundation for identifying market structures, buy-side/sell-side liquidity levels, and order and breaker blocks presented with this tool.
In summary, swing points are essential elements in technical analysis, helping traders identify trends, support, and resistance levels, and optimal entry and exit points. Understanding swing points allows traders to make informed decisions based on the natural price movements in the market.
🔶 SETTINGS
🔹 Market Structures
Market Structures: Toggles the visibility of the market structures, both shifts and breaks.
Detection: An option that allows users to detect market structures based on the significance of swing levels, including short-term, intermediate-term, and long-term.
Market Structure Labels: Controls the visibility of labels that highlight the type of market structure.
Line Style: Customizes the style of the lines representing the market structure.
🔹 Order & Breaker Blocks
Order & Breaker Blocks: Toggles the visibility of the order & breaker blocks.
Detection: An option that allows users to detect order & breaker blocks based on the significance of swing levels, including short-term, intermediate-term, and long-term.
Last Bullish Blocks: Number of the most recent bullish order/breaker blocks to display on the chart.
Last Bearish Blocks: Number of the most recent bearish order/breaker blocks to display on the chart.
Use Candle Body: Allows users to use candle bodies as order block areas instead of the full candle range.
🔹 Buyside & Sellside Liquidity
Buyside & Sellside Liquidity: Toggles the visibility of the buyside & sellside liquidity levels.
Detection: An option that allows users to detect buy-side & sell-side liquidity based on the significance of swing levels, including short-term, intermediate-term, and long-term.
Margin: Sets margin/sensitivity for a liquidity level detection.
Visible Levels: Controls the amount of the liquidity levels/zones to be visualized.
🔹 Liquidity Voids
Liquidity Voids: Enable display of both bullish and bearish liquidity voids.
Threshold Multiplier: Defines the multiplier for the threshold, which is hard-coded to the 200-period ATR range.
Mode: Controls the lookback length for detection and visualization. Present considers the last X bars specified in the option, while Historical includes all available data.
Label: Enable display of a label indicating liquidity voids.
🔹 Swing Highs/Lows
Swing Highs/Lows: Toggles the visibility of the swing levels.
Detection: An option that allows users to detect swing levels based on the significance of swing levels, including short-term, intermediate-term, and long-term.
Label Size: Control the size of swing level labels.
🔶 RELATED SCRIPTS
Pure-Price-Action-Structures.
Market-Structures-(Intrabar).
Buyside-Sellside-Liquidity.
Order-Breaker-Blocks.
Indicator Based Market Exposure (IBME)The Indicator Based Market Exposure (IBME) system was created by Big Wave Chartist as a way to navigate the markets using a confluence of three different signals to determine when the "internals" of the market are in your favor and how heavily invested to be at any point. The idea of the system is also to flash warning signs when the market internals are beginning to deteriorate so as to take a defensive stance. Of course this system can be strictly adhered to, or it can be incorporated into a more discretionary style of trading, and be combined with progressive exposure into (and out of) the market as positions gain (or lose) traction.
The IBME displays a straightforward action signal based on the combination of the 3 separate signals:
Green 🟢 Full size-longs permitted
Yellow 🟡 Pilot positions permitted
Red 🔴 No longs allowed
So let's get into the signals used:
McClellan Summation Index
Net New Highs/Lows
Net New Highs Crossover
McClellan Summation Index (MSI)
The McClellan Summation Index is a long-term version of the McClellan Oscillator, which is a market breadth indicator based on stock advances and declines. Interpretation is similar to that of the McClellan Oscillator, except that it is more suited to intermediate to major trends and related reversals. The McClellan Summation Index can be calculated as the sum of all the daily values of the McClellan Oscillator. This is used along with the 10-sma to watch for a crossover indicating an uptrend or downtrend beginning.
Net New Highs/Lows
This is the net number of stocks making 52-week highs or lows. For instance, if there are 60 new 52-week highs and 20 new 52-week lows, the net number will be 40 net new 52 week highs. This signal is particularly useful in gauging breadth.
Net New Highs Crossover
This is the description of NNHC from the original separate version of this indicator created by HikoStory: "Net New Highs can guide you to increase or decrease your exposure based on the current market health. They are calculated by subtracting the new highs from the new lows, based on all stocks of the...NASDAQ. A positive value shows that the market is doing good, since more stocks are making new highs compared to new lows. A negative value shows that the market is doing bad, since more stocks are making new lows compared to new highs. Combined with a moving average you can see crossovers that can warn you early when there is a change in the current market health."
The default index for the IBME is the Nasdaq.
The IBME is meant to be used on a daily time frame chart, therefore the signal will only show on a daily time frame chart.
Display options include:
Show/hide individual signals
Table background/font color
Table size/placement
HH-LL ZZAnother ZigZag, yes...
I believe though this concerns another angle/principle, therefore I wanted to share
How does it work?
Given:
source for level breach -> close
X breaches -> 3
Let's say this is the latest found 'lower low' (LL - blue dot under bar):
This bar has been triggered because 3 bars closed under low of previous 'trigger bar' (TB )
The high and low of this new TB will act as triggers
(aqua blue lines, seen in image above)
Then there are 2 options:
- again 3 bars closes under the latest TB , in that case the TB moves to that new LL.
- 3 bars closes higher than the high of previous TB
The high and low of this new TB act again as trigger
If a new TB LL/HH is found, the script checks previous LL/HH
and searches the highest/lowest point in between.
If necessary, the temporary highest/lowest will be adjusted:
Another example:
The last 2 points can change (repaint).
Yellow coloured lines/labels are set and won't change anymore.
Concluded:
In case of these settings:
source for level breach -> close
X breaches -> 3
once a new TB is found, the high and low act as trigger lines
- when 3 bars closes under that low , a new LL is found, this will be the new TB
- when 3 bars closes above that high , a new HH is found, this will be the new TB
and so on...
Settings:
source for level breach -> close or high/low - H/L
X breaches -> 1 -> 10
line style -> solid, dotted, dashed
show level breaches -> new found TB (blue/lime coloured)
show Support/Resistance (lines at the right)
repaint warning can be removed
show labels / lines
This ZZ can be used for Harmonic patterns, Trend evaluation, support/resistance,...
In this script, I also used new features
- text_font_family = font.family_monospace -> link
- display=display.pane -> link
Cheers!
PrasiGanFanFibntroduction
This is a combination of Fibonacci and Gann fan /retracements.
The script can automatically draw as many:
Fibonacci Retracements
Fibonacci Fan
Gann Retracements
Gann Fan
as the user requires on the chart. Each level set or fan consists of 7 lines based on the most important ratios of Fibonacci/ Gann .
Basics
What are Fibonacci retracements?
Fibonacci retracement levels are horizontal lines that indicate where support and resistance are likely to occur. They stem from Fibonacci’s sequence. Each level is associated with a percentage which is how much of a prior move the price has retraced. The Fibonacci retracement levels are 23.6%, 38.2%, 61.8%, and 78.6%. While not officially a Fibonacci ratio, 50% is also used. The indicator is useful because it can be drawn between any two significant price points, such as a high and a low. The indicator will then create the levels between those two points.
What are Gann retracements?
A developer of technical analysis and trading was W.D. Gann . Gann theory expects a normal retracement of 50 percent. This means that under normal selling pressure, the stock price will decline half the amount of its most recent rise, and vice versa. It also suggests that retracements occur at the halfway point of a move, such as 25 percent (half of 50 percent), 12.5 percent (half of 25 percent), and so on.
What is Fibonacci fan?
Fibonacci fan is a set of sequential trend lines drawn from a trough or peak through a set of points dictated by Fibonacci retracements. The first step to create it is to draw a trend line covering the local lowest and highest prices of a security. To reach retracement levels, the trader divides the difference in price at the low and high end by ratios determined by the Fibonacci series. The lines formed by connecting the starting point for the base trend line and each retracement level create the Fibonacci fan.
What is Gann fan?
A Gann fan consists of a series of lines called Gann angles. These angles are superimposed over a price chart to show potential support and resistance levels. The resulting image is supposed to help technical analysts predict price changes. Gann believed the 45-degree angle to be most important, but the Gann fan also draws angles at degrees like 75, 63.75, 26.25 and 15. The Gann fan originates at a low or high point. The resulting lines show areas of potential future support and resistance . The 45-degree line is known as the 1:1 line because the price will rise or fall at a 45-degree angle when the price moves up/down one unit for each unit of time. All other lines in the Gann fan are drawn above and below the 1:1 line. The other angles are associated with 2:1, 3:1, 4:1, 8:1 and 1:8, 1:4, 1:3, and 1:2 time-to-price moves.
Challenges
The most of the time I dedicated to writing this script has been spent on handling these problems:
1. Finding Local Highest/Lowest Prices
In order to draw Fibonacci and Gann fan /retracements, it's necessary to find local highest and lowest price points (Extrema) on the chart. As this could be so challenging, most traders and coders draw the lines covering the low and high prices over a given period of time or a limited number of bars back instead. I already wrote an indicator using this approach (Auto Fibonacci Combo).
In this new script I tried to find the exact highest and lowest prices based on this idea that: if a high point is formed lower than previous high which was after a lowest point, then that previous one was the local highest point, and vice versa if a low point is formed higher than previous low which was after a highest point, then that previous one was the local lowest point. So logically an extremum price on the chart won't be found until the next high/low point is formed.
2. Finding Proper Chart Scale for Gann Fan
Based on the theory, Gann angles are sensitive to the chart price scale and in order to have the right angles, the chart must be made with the proper scale. J.A. Hyerczyk in his book "Pattern, Price & Time - Using Gann Theory in Technical Analysis" suggests that the easiest way to determine the scale of a market is by taking the difference between top-to-top and bottom-to-bottom and dividing it by the time it took the market to move from top to top and bottom to bottom.
Thus on a properly constructed chart, the basic equation for calculating Gann angles is: Price * Time.
3. Drawing Fans and Relocating Fan Labels at Each New Bar in Pine (A Programming-Related Subject)
To do this, I used linear equations and line slopes. Of course it was so complicated and exhausting, but finally I overcame that thanks to my genius cousin.
Settings and Usage
By default, the script shows detected extremum points plus 1 Fibonacci fan, 1 Gann fan , 1 set of Fibonacci retracements and no Gann retracements on the chart. All of these could be changed in the indicator settings beside the color and transparency of each line.
Feel free to use this and send me your thoughts!
MTF previous high and low quarter levelsDescription
An experimental script that prints quarter levels of the previous timeframe's high and low to the current timeframe. The idea is quite simple and is basically the Fibonacci pivoted on the previous high and low with quarter level settings (0,0.25,0.5,0.75,1 etc). The default setting is the previous daily high and low but can be customized on user discretion.
New quarter levels are printed after the close of the previous timeframe and open of the new timeframe (user's timeframe setting)
How To Use
Levels should not be used blindly. Levels can be used as confluence when aligned with high probability supply and demand zones, support, resistance, order blocks, and so on.
Credit to @HeWhoMustNotBeNamed for the Previous High/Low MTF indicator code and @mrbirman for the idea to put this together.
Auto Fibonacci and Gann Fan/Retracements ComboIntroduction
This is a combination of Fibonacci and Gann fan/retracements.
The script can automatically draw as many:
Fibonacci Retracements
Fibonacci Fan
Gann Retracements
Gann Fan
as the user requires on the chart. Each level set or fan consists of 7 lines based on the most important ratios of Fibonacci/Gann.
Basics
What are Fibonacci retracements?
Fibonacci retracement levels are horizontal lines that indicate where support and resistance are likely to occur. They stem from Fibonacci’s sequence. Each level is associated with a percentage which is how much of a prior move the price has retraced. The Fibonacci retracement levels are 23.6%, 38.2%, 61.8%, and 78.6%. While not officially a Fibonacci ratio, 50% is also used. The indicator is useful because it can be drawn between any two significant price points, such as a high and a low. The indicator will then create the levels between those two points.
What are Gann retracements?
A developer of technical analysis and trading was W.D. Gann. Gann theory expects a normal retracement of 50 percent. This means that under normal selling pressure, the stock price will decline half the amount of its most recent rise, and vice versa. It also suggests that retracements occur at the halfway point of a move, such as 25 percent (half of 50 percent), 12.5 percent (half of 25 percent), and so on.
What is Fibonacci fan?
Fibonacci fan is a set of sequential trend lines drawn from a trough or peak through a set of points dictated by Fibonacci retracements. The first step to create it is to draw a trend line covering the local lowest and highest prices of a security. To reach retracement levels, the trader divides the difference in price at the low and high end by ratios determined by the Fibonacci series. The lines formed by connecting the starting point for the base trend line and each retracement level create the Fibonacci fan.
What is Gann fan?
A Gann fan consists of a series of lines called Gann angles. These angles are superimposed over a price chart to show potential support and resistance levels. The resulting image is supposed to help technical analysts predict price changes. Gann believed the 45-degree angle to be most important, but the Gann fan also draws angles at degrees like 75, 63.75, 26.25 and 15. The Gann fan originates at a low or high point. The resulting lines show areas of potential future support and resistance. The 45-degree line is known as the 1:1 line because the price will rise or fall at a 45-degree angle when the price moves up/down one unit for each unit of time. All other lines in the Gann fan are drawn above and below the 1:1 line. The other angles are associated with 2:1, 3:1, 4:1, 8:1 and 1:8, 1:4, 1:3, and 1:2 time-to-price moves.
Challenges
The most of the time I dedicated to writing this script has been spent on handling these problems:
1. Finding Local Highest/Lowest Prices
In order to draw Fibonacci and Gann fan/retracements, it's necessary to find local highest and lowest price points (Extrema) on the chart. As this could be so challenging, most traders and coders draw the lines covering the low and high prices over a given period of time or a limited number of bars back instead. I already wrote an indicator using this approach ( Auto Fibonacci Combo ).
In this new script I tried to find the exact highest and lowest prices based on this idea that: if a high point is formed lower than previous high which was after a lowest point, then that previous one was the local highest point, and vice versa if a low point is formed higher than previous low which was after a highest point, then that previous one was the local lowest point. So logically an extremum price on the chart won't be found until the next high/low point is formed.
2. Finding Proper Chart Scale for Gann Fan
Based on the theory, Gann angles are sensitive to the chart price scale and in order to have the right angles, the chart must be made with the proper scale. J.A. Hyerczyk in his book "Pattern, Price & Time - Using Gann Theory in Technical Analysis" suggests that the easiest way to determine the scale of a market is by taking the difference between top-to-top and bottom-to-bottom and dividing it by the time it took the market to move from top to top and bottom to bottom.
Thus on a properly constructed chart, the basic equation for calculating Gann angles is: Price * Time.
3. Drawing Fans and Relocating Fan Labels at Each New Bar in Pine (A Programming-Related Subject)
To do this, I used linear equations and line slopes. Of course it was so complicated and exhausting, but finally I overcame that thanks to my genius cousin.
Settings and Usage
By default, the script shows detected extremum points plus 1 Fibonacci fan, 1 Gann fan, 1 set of Fibonacci retracements and no Gann retracements on the chart. All of these could be changed in the indicator settings beside the color and transparency of each line.
Feel free to use this and send me your thoughts!
Volume EffectivenessI have been trying to work with volume as an indicator for quite some time, as it holds qualities as a 'leading indicator'.
However, please note that any indicator which to some extent predict a future trend has its issues as it can be misleading.
But, in some datasets in a selected timeframe the leading properties of volume as an indicator are useful.
So this script is not too complicated. It shows a numeric which resembles the 'effectiveness of volume' in moving price.
For example, if a small volume creates a large price change - the Volume Effectiveness indicator will be high and show a spike
Whereas, if a large volume creates a small price change - the Volume Effectiveness indicator will be low
I used 3 metrics to represent Volume Effectiveness (these are different colors on the bar chart)
One price difference is the absolute(high - low) for each bar
Another is the absolute(open - close)
The 'open-close' is smaller than the 'high-low', so note this when viewing the bar charts
The final metric depends on if the open is greater than the close or vice-versa
But it considers the 'absolute(high-low)' and the difference between the open and the high (or low) and the close and the low (or high)
So the final metric is the largest of the 3 metrics and is generally the most useful of the 3 however, the other 2 are displayed to provide a better understanding of what 'Volume Effectiveness' displays
Note, I use absolute values so they are only positive, i.e. there are no negative values to represent a price drop within a bar
So, why is this indicator useful - its because volume is a leading indicator
A decreasing volume tends to suggest a price change is coming
Also, when the volume within a bar is very small, its Volume Effectiveness tends to go very high
That means a small trade volume creates a relatively large change in price
This is ideal conditions for a big pump (or big dump - although this indicator seems to work better before pumps)
A large spike in the Volume Effectiveness is commonly/sometimes preceding a big pump
So watch this indicator - and if there is a big spike - evaluate other market conditions to consider getting into position
Large spikes in the Volume Effectiveness can precede big price changes and therefore can provide a leading indication before a pump or dump
Timeframe is important - I found on the daily timeframe this indicator did not provide sufficient lead to be useful. Similarly on the <15min timeframe the spikes were not highly correlated with pumps/dumps
However, in medium timeframes (15mins, 1hour, 4hours) this indicator can be useful for predicting sizeable price changes.
Gunzo Market SRGunzo Market SR is a set of 3 tools combined for trend analysis on day trading strategy.
VWAP (Volume Weighted Average Price) :
The VWAP indicator is generally used for trend analysis. For example if the VWAP line is under the closing price for a long period of time, the trend is strong. In this script, the VWAP has been optimized for day trading as the indicator is calculated inside the daily range, and resets when a new day starts. This way the indicator reflects the daily trend and not the overall trend. You can also use the position of closing price according to the VWAP to find optimal entry points according to the indicator.
Highs / Lows :
The Highs / Lows are generally used for trend analysis too. The High / Lows are mainly used to identify prices that have been key during the past and that we can use as an indication for the following candles. In this script, the Highs / Lows are computed on the daily period and then displayed on the current period (recommended to use on a daily period or lower). This way the indicator reflects the highest point and the lowest point of the day (can be modified to have a longer range of pivot days even if I recommend to stay on 1 day for day trading).
Support / Resistance :
The Support / Resistance is generally used for trend analysis too. The Support / Resistance are found by searching local high and lows. The longer the supports and resistance are, the strongest it can be considered. In this script, the Highs / Lows are computed by default on a lower time frame (usually 3-4 times lower). For example on a 15 minute graph, the Highs / Lows will be computed on the 5 minute graph (can be modified if the displayed result is not optimized for your asset).
How to use this set of tools :
I personally recommend to use this tool at the start of your day of trading. This way you will get a clear vision of the daily situation and try to identify key prices and the trend for the current day. I then suggest to set up an alert on the key price to be notified when you're getting close to it.
Volume Profile Free Ultra SLI (100 Levels Value Area VWAP) - RRBVolume Profile Free Ultra SLI by RagingRocketBull 2019
Version 1.0
This indicator calculates Volume Profile for a given range and shows it as a histogram consisting of 100 horizontal bars.
This is basically the MAX SLI version with +50 more Pinescript v4 line objects added as levels.
It can also show Point of Control (POC), Developing POC, Value Area/VWAP StdDev High/Low as dynamically moving levels.
Free accounts can't access Standard TradingView Volume Profile, hence this indicator.
There are several versions: Free Pro, Free MAX SLI, Free Ultra SLI, Free History. This is the Free Ultra SLI version. The Differences are listed below:
- Free Pro: 25 levels, +Developing POC, Value Area/VWAP High/Low Levels, Above/Below Area Dimming
- Free MAX SLI: 50 levels, 2x SLI modes for Buy/Sell or even higher res 150 levels
- Free Ultra SLI: 100 levels, packed to the limit, 2x SLI modes for Buy/Sell or even higher res 300 levels
- Free History: auto highest/lowest, historic poc/va levels for each session
Features:
- High-Res Volume Profile with up to 100 levels (line implementation)
- 2x SLI modes for even higher res: 300 levels with 3x vertical SLI, 100 buy/sell levels with 2x horiz SLI
- Calculate Volume Profile on full history
- POC, Developing POC Levels
- Buy/Sell/Total volume modes
- Side Cover
- Value Area, VAH/VAL dynamic levels
- VWAP High/Low dynamic levels with Source, Length, StdDev as params
- Show/Hide all levels
- Dim Non Value Area Zones
- Custom Range with Highlighting
- 3 Anchor points for Volume Profile
- Flip Levels Horizontally
- Adjustable width, offset and spacing of levels
- Custom Color for POC/VA/VWAP levels, Transparency for buy/sell levels
WARNING:
- Compilation Time: 1 min 20 sec
Usage:
- specify max_level/min_level/spacing (required)
- select range (start_bar, range length), confirm with range highlighting
- select volume type: Buy/Sell/Total
- select mode Value Area/VWAP to show corresponding levels
- flip/select anchor point to position the buy/sell levels
- use Horiz Buy/Sell SLI mode with 100 or Vertical SLI with 300 levels if needed
- use POC/Developing POC/VA/VWAP High/Low as S/R levels. Usually daily values from 1-3 days back are used as levels for the current day.
SLI:
use SLI modes to extend the functionality of the indicator:
- Horiz Buy/Sell 2x SLI lets you view 100 Buy/Sell Levels at the same time
- Vertical Max_Vol 3x SLI lets you increase the resolution to 300 levels
- you need at least 2 instances of the indicator attached to the same chart for SLI to work
1) Enable Horiz SLI:
- attach 2 indicator instances to the chart
- make sure all instances have the same min_level/max_level/range/spacing settings
- select volume type for each instance: you can have a buy/sell or buy/total or sell/total SLI. Make sure your buy volume instance is the last attached to be displayed on top of sell/total instances without overlapping.
- set buy_sell_sli_mode to true for indicator instances with volume_type = buy/sell, for type total this is optional.
- this basically tells the script to calculate % lengths based on total volume instead of individual buy/sell volumes and use ext offset for sell levels
- Sell Offset is calculated relative to Buy Offset to stack/extend sell after buy. Buy Offset = Zero - Buy Length. Sell Offset = Buy Offset - Sell Length = Zero - Buy Length - Sell Length
- there are no master/slave instances in this mode, all indicators are equal, poc/va levels are not affected and can work independently, i.e. one instance can show va levels, another - vwap.
2) Enable Vertical SLI:
- attach the first instance and evaluate the full range to roughly determine where is the highest max_vol/poc level i.e. 0..20000, poc is in the bottom half (third, middle etc) or
- add more instances and split the full vertical range between them, i.e. set min_level/max_level of each corresponding instance to 0..10000, 10000..20000 etc
- make sure all instances have the same range/spacing settings
- an instance with a subrange containing the poc level of the full range is now your master instance (bottom half). All other instances are slaves, their levels will be calculated based on the max_vol/poc of the master instance instead of local values
- set show_max_vol_sli to true for the master instance. for slave instances this is optional and can be used to check if master/slave max_vol values match and slave can read the master's value. This simply plots the max_vol value
- you can also attach all instances and set show_max_vol_sli to true in all of them - the instance with the largest max_vol should become the master
Auto/Manual Ext Max_Vol Modes:
- for auto vertical max_vol SLI mode set max_vol_sli_src in all slave instances to the max_vol of the master indicator: "VolumeProfileFree_MAX_RRB: Max Volume for Vertical SLI Mode". It can be tricky with 2+ instances
- in case auto SLI mode doesn't work - assign max_vol_sli_ext in all slave instances the max_vol value of the master indicator manually and repeat on each change
- manual override max_vol_sli_ext has higher priority than auto max_vol_sli_src when both values are assigned, when they are 0 and close respectively - SLI is disabled
- master/slave max_vol values must match on each bar at all times to maintain proper level scale, otherwise slave's levels will look larger than they should relative to the master's levels.
- Max_vol (red) is the last param in the long list of indicator outputs
- the only true max_vol/poc in this SLI mode is the master's max_vol/poc. All poc/va levels in slaves will be irrelevant and are disabled automatically. Slaves can only show VWAP levels.
- VA Levels of the master instance in this SLI mode are calculated based on the subrange, not the whole range and may be inaccurate. Cross check with the full range.
WARNING!
- auto mode max_vol_sli_src is experimental and may not work as expected
- you can only assign auto mode max_vol_sli_src = max_vol once due to some bug with unhandled exception/buffer overflow in Tradingview. Seems that you can clear the value only by removing the indicator instance
- sometimes you may see a "study in error state" error when attempting to set it back to close. Remove indicator/Reload chart and start from scratch
- volume profile may not finish to redraw and freeze in an ugly shape after an UI parameter change when max_vol_sli_src is assigned a max_vol value. Assign it to close - VP should redraw properly, but it may not clear the assigned max_vol value
- you can't seem to be able to assign a proper auto max_vol value to the 3rd slave instance
- 2x Vertical SLI works and tested in both auto/manual, 3x SLI - only manual seems to work (you can have a mixed mode: 2nd instance - auto, 3rd - manual)
Notes:
- This code uses Pinescript v3 compatibility framework
- This code is 20x-30x faster (main for cycle is removed) especially on lower tfs with long history - only 4-5 sec load/redraw time vs 30-60 sec of the old Pro versions
- Instead of repeatedly calculating the total sum of volumes for the whole range on each bar, vol sums are now increased on each bar and passed to the next in the range making it a per range vs per bar calculation that reduces time dramatically
- 100 levels consist of 50 main plot levels and 50 line objects used as alternate levels, differences are:
- line objects are always shown on top of other objects, such as plot levels, zero line and side cover, it's not possible to cover/move them below.
- all line objects have variable lengths, use actual x,y coords and don't need side cover, while all plot levels have a fixed length of 100 bars, use offset and require cover.
- all key properties of line objects, such as x,y coords, color can be modified, objects can be moved/deleted, while this is not possible for static plot levels.
- large width values cause line objects to expand only up/down from center while their length remains the same and stays within the level's start/end points similar to an area style.
- large width values make plot levels expand in all directions (both h/v), beyond level start/end points, sometimes overlapping zero line, making them an inaccurate % length representation, as opposed to line objects/plot levels with area style.
- large width values translate into different widths on screen for line objects and plot levels.
- you can't compensate for this unwanted horiz width expansion of plot levels because width uses its own units, that don't translate into bars/pixels.
- line objects are visible only when num_levels > 50, plot levels are used otherwise
- Since line objects are lines, plot levels also use style line because other style implementations will break the symmetry/spacing between levels.
- if you don't see a volume profile check range settings: min_level/max_level and spacing, set spacing to 0 (or adjust accordingly based on the symbol's precision, i.e. 0.00001)
- you can view either of Buy/Sell/Total volumes, but you can't display Buy/Sell levels at the same time using a single instance (this would 2x reduce the number of levels). Use 2 indicator instances in horiz buy/sell sli mode for that.
- Volume Profile/Value Area are calculated for a given range and updated on each bar. Each level has a fixed length. Offsets control visible level parts. Side Cover hides the invisible parts.
- Custom Color for POC/VA/VWAP levels - UI Style color/transparency can only change shape's color and doesn't affect textcolor, hence this additional option
- Custom Width - UI Style supports only width <= 4, hence this additional option
- POC is visible in both modes. In VWAP mode Developing POC becomes VWAP, VA High and Low => VWAP High and Low correspondingly to minimize the number of plot outputs
- You can't change buy/sell level colors from input (only transparency) - this requires 2x plot outputs => 2x reduces the number of levels to fit the max 64 limit. That's why 2 additional plots are used to dim the non Value Area zones
- You can change level transparency of line objects. Due to Pinescript limitations, only discrete values are supported.
- Inverse transp correlation creates the necessary illusion of "covered" line objects, although they are shown on top of the cover all the time
- If custom lines_transp is set the illusion will break because transp range can't be skewed easily (i.e. transp 0..100 is always mapped to 100..0 and can't be mapped to 50..0)
- transparency can applied to lines dynamically but nva top zone can't be completely removed because plot/mixed type of levels are still used when num_levels < 50 and require cover
- transparency can't be applied to plot levels dynamically from script this can be done only once from UI, and you can't change plot color for the past length bars
- All buy/sell volume lengths are calculated as % of a fixed base width = 100 bars (100%). You can't set show_last from input to change it
- Range selection/Anchoring is not accurate on charts with time gaps since you can only anchor from a point in the future and measure distance in time periods, not actual bars, and there's no way of knowing the number of future gaps in advance.
- Adjust Width for Log Scale mode now also works on high precision charts with small prices (i.e. 0.00001)
- in Adjust Width for Log Scale mode Level1 width extremes can be capped using max deviation (when level1 = 0, shift = 0 width becomes infinite)
- There's no such thing as buy/sell volume, there's just volume, but for the purposes of the Volume Profile method, assume: bull candle = buy volume, bear candle = sell volume
P.S. I am your grandfather, Luke! Now, join the Dark Side in your father's steps or be destroyed! Once more the Sith will rule the Galaxy, and we shall have peace...
Volume Profile Free MAX SLI (50 Levels Value Area VWAP) by RRBVolume Profile Free MAX SLI by RagingRocketBull 2019
Version 1.0
All available Volume Profile Free MAX SLI versions are listed below (They are very similar and I don't want to publish them as separate indicators):
ver 1.0: style columns implementation
ver 2.0: style histogram implementation
ver 3.0: style line implementation
This indicator calculates Volume Profile for a given range and shows it as a histogram consisting of 50 horizontal bars.
It can also show Point of Control (POC), Developing POC, Value Area/VWAP StdDev High/Low as dynamically moving levels.
Free accounts can't access Standard TradingView Volume Profile, hence this indicator.
There are several versions: Free Pro, Free MAX SLI, Free History. This is the Free MAX SLI version. The Differences are listed below:
- Free Pro: 25 levels, +Developing POC, Value Area/VWAP High/Low Levels, Above/Below Area Dimming
- Free MAX SLI: 50 levels, packed to the limit, 2x SLI modes for Buy/Sell or even higher res 150 levels
- Free History: auto highest/lowest, historic poc/va levels for each session
Features:
- High-Res Volume Profile with up to 50 levels (3 implementations)
- 20-30x faster than the old Pro versions especially on lower tfs with long history
- 2x SLI modes for even higher res: 150 levels with 3x vertical SLI, 50 buy/sell levels with 2x horiz SLI
- Calculate Volume Profile on full history
- POC, Developing POC Levels
- Buy/Sell/Total volume modes
- Side Cover
- Value Area, VAH/VAL dynamic levels
- VWAP High/Low dynamic levels with Source, Length, StdDev as params
- Show/Hide all levels
- Dim Non Value Area Zones
- Custom Range with Highlighting
- 3 Anchor points for Volume Profile
- Flip Levels Horizontally
- Adjustable width, offset and spacing of levels
- Custom Color for POC/VA/VWAP levels and Transparency for buy/sell levels
Usage:
- specify max_level/min_level/spacing (required)
- select range (start_bar, range length), confirm with range highlighting
- select volume type: Buy/Sell/Total
- select mode Value Area/VWAP to show corresponding levels
- flip/select anchor point to position the buy/sell levels
- use Horiz SLI mode for 50 Buy/Sell or Vertical SLI for 150 levels if needed
- use POC/Developing POC/VA/VWAP High/Low as S/R levels. Usually daily values from 1-3 days back are used as levels for the current day.
SLI:
- use SLI modes to extend the functionality of the indicator:
- Horiz Buy/Sell 2x SLI lets you view 50 Buy/Sell Levels at the same time
- Vertical Max_Vol 3x SLI lets you increase the resolution to 150 levels
- you need at least 2 instances of the indicator attached to the same chart for SLI to work
1) Enable Horiz SLI:
- attach 2 indicator instances to the chart
- make sure all instances have the same min_level/max_level/range/spacing settings
- select volume type for each instance: you can have a buy/sell or buy/total or sell/total SLI. Make sure your buy volume instance is the last attached to be displayed on top of sell/total instances without overlapping.
- set buy_sell_sli_mode to true for indicator instances with volume_type = buy/sell, for type total this is optional.
- this basically tells the script to calculate % lengths based on total volume instead of individual buy/sell volumes and use ext offset for sell levels
- Sell Offset is calculated relative to Buy Offset to stack/extend sell after buy. Buy Offset = Zero - Buy Length. Sell Offset = Buy Offset - Sell Length = Zero - Buy Length - Sell Length
- there are no master/slave instances in this mode, all indicators are equal, poc/va levels are not affected and can work independently, i.e. one instance can show va levels, another - vwap.
2) Enable Vertical SLI:
- attach the first instance and evaluate the full range to roughly determine where is the highest max_vol/poc level i.e. 0..20000, poc is in the bottom half (third, middle etc) or
- add more instances and split the full vertical range between them, i.e. set min_level/max_level of each corresponding instance to 0..10000, 10000..20000 etc
- make sure all instances have the same range/spacing settings
- an instance with a subrange containing the poc level of the full range is now your master instance (bottom half). All other instances are slaves, their levels will be calculated based on the max_vol/poc of the master instance instead of local values
- set show_max_vol_sli to true for the master instance. for slave instances this is optional and can be used to check if master/slave max_vol values match and slave can read the master's value. This simply plots the max_vol value
- you can also attach all instances and set show_max_vol_sli to true in all of them - the instance with the largest max_vol should become the master
Auto/Manual Ext Max_Vol Modes:
- for auto vertical max_vol SLI mode set max_vol_sli_src in all slave instances to the max_vol of the master indicator: "VolumeProfileFree_MAX_RRB: Max Volume for Vertical SLI Mode". It can be tricky with 2+ instances
- in case auto SLI mode doesn't work - assign max_vol_sli_ext in all slave instances the max_vol value of the master indicator manually and repeat on each change
- manual override max_vol_sli_ext has higher priority than auto max_vol_sli_src when both values are assigned, when they are 0 and close respectively - SLI is disabled
- master/slave max_vol values must match on each bar at all times to maintain proper level scale, otherwise slave's levels will look larger than they should relative to the master's levels.
- Max_vol (red) is the last param in the long list of indicator outputs
- the only true max_vol/poc in this SLI mode is the master's max_vol/poc. All poc/va levels in slaves will be irrelevant and are disabled automatically. Slaves can only show VWAP levels.
- VA Levels of the master instance in this SLI mode are calculated based on the subrange, not the whole range. Cross check with the full range.
WARNING!
- auto mode max_vol_sli_src is experimental and may not work as expected
- you can only assign auto mode max_vol_sli_src = max_vol once due to some bug with unhandled exception/buffer overflow in Tradingview. Seems that you can clear the value only by removing the indicator instance
- sometimes you may see a "study in error state" error when attempting to set it back to close. Remove indicator/Reload chart and start from scratch
- volume profile may not finish to redraw and freeze in an ugly shape after an UI parameter change when max_vol_sli_src is assigned a max_vol value. Assign it to close - VP should redraw properly, but it may not clear the assigned max_vol value
- you can't seem to be able to assign a proper auto max_vol value to the 3rd slave instance
- 2x Vertical SLI works and tested in both auto/manual, 3x SLI - only manual seems to work
Notes:
- This code is 20x-30x faster (main for cycle is removed) especially on lower tfs with long history - only 2-3 sec load/redraw time vs 30-60 sec of the old Pro versions
- Instead of repeatedly calculating the total sum of volumes for the whole range on each bar, vol sums are now increased on each bar and passed to the next in the range making it a per range vs per bar calculation that reduces time dramatically
- hist_base for levels still results is ugly redraw
- if you don't see a volume profile check range settings: min_level/max_level and spacing, set spacing to 0 (or adjust accordingly based on the symbol's precision, i.e. 0.00001)
- you can view either of Buy/Sell/Total volumes, but you can't display Buy/Sell levels at the same time using a single instance (this would 2x reduce the number of levels). Use 2 indicator instances in horiz buy/sell sli mode for that.
- Volume Profile/Value Area are calculated for a given range and updated on each bar. Each level has a fixed length. Offsets control visible level parts. Side Cover hides the invisible parts.
- Custom Color for POC/VA/VWAP levels - UI Style color/transparency can only change shape's color and doesn't affect textcolor, hence this additional option
- Custom Width - UI Style supports only width <= 4, hence this additional option
- POC is visible in both modes. In VWAP mode Developing POC becomes VWAP, VA High and Low => VWAP High and Low correspondingly to minimize the number of plot outputs
- You can't change buy/sell level colors from input (only plot transparency) - this requires 2x plot outputs => 2x reduces the number of levels to fit the max 64 limit. That's why 2 additional plots are used to dim the non Value Area zones
- All buy/sell volume lengths are calculated as % of a fixed base width = 100 bars (100%). You can't set show_last from input to change it
- There's no such thing as buy/sell volume, there's just volume, but for the purposes of the Volume Profile method, assume: bull candle = buy volume, bear candle = sell volume
P.S. Gravitonium Levels Are Increasing. Unobtainium is nowhere to be found!
Links on Volume Profile and Value Area calculation and usage:
www.tradingview.com
stockcharts.com
onlinelibrary.wiley.com
Volume Profile Free Pro (25 Levels Value Area VWAP) by RRBVolume Profile Free Pro by RagingRocketBull 2019
Version 1.0
All available Volume Profile Free Pro versions are listed below (They are very similar and I don't want to publish them as separate indicators):
ver 1.0: style columns implementation
ver 2.0: style histogram implementation
ver 3.0: style line implementation
This indicator calculates Volume Profile for a given range and shows it as a histogram consisting of 25 horizontal bars.
It can also show Point of Control (POC), Developing POC, Value Area/VWAP StdDev High/Low as dynamically moving levels.
Free accounts can't access Standard TradingView Volume Profile, hence this indicator.
There are 3 basic methods to calculate the Value Area for a session.
- original method developed by Steidlmayr (calculated around POC)
- classical method using StdDev (calculated around the mean VWAP)
- another method based on the mean absolute deviation (calculated around the median)
POC is a high volume node and can be used as support/resistance. But when far from the day's average price it may not be as good a trend filter as the other methods.
The 80% Rule: When the market opens above/below the Value Area and then returns/stays back inside for 2 consecutive 30min periods it has 80% chance of filling VA (like a gap).
There are several versions: Free, Free Pro, Free MAX. This is the Free Pro version. The Differences are listed below:
- Free: 30 levels, Buy/Sell/Total Volume Profile views, POC
- Free Pro: 25 levels, +Developing POC, Value Area/VWAP High/Low Levels, Above/Below Area Dimming
- Free MAX: 50 levels, packed to the limit
Features:
- Volume Profile with up to 25 levels (3 implementations)
- POC, Developing POC Levels
- Buy/Sell/Total/Side by Side View modes
- Side Cover
- Value Area, VAH/VAL dynamic levels
- VWAP High/Low dynamic levels with Source, Length, StdDev as params
- Show/Hide all levels
- Dim Non Value Area Zones
- Custom Range with Highlighting
- 3 Anchor points for Volume Profile
- Flip Levels Horizontally
- Adjustable width, offset and spacing of levels
- Custom Color for POC/VA/VWAP levels and Transparency for buy/sell levels
Usage:
- specify max_level/min_level for a range (required in ver 1.0/2.0, auto/optional in ver 3.0 = set to highest/lowest)
- select range (start_bar, range length), confirm with range highlighting
- select mode Value Area or VWAP to show corresponding levels.
- flip/select anchor point to position the buy/sell levels, adjust width and spacing as needed
- select Buy/Sell/Total/Side by Side view mode
- use POC/Developing POC/VA/VWAP High/Low as S/R levels. Usually daily values from 1-3 days back are used as levels for the current day.
- Green - buy volume of a specific price level in a range, Red - sell volume. Green + Red = Total volume of a price level in a range
There's no native support for vertical histograms in Pinescript (with price axis as base)
Basically, there are 4 ways to plot a series of horizontal bars stacked on top of each other:
1. plotshape style labeldown (ver 0 prototype discarded)
- you can have a set of fixed width/height text labels consisting of a series of underscores and moving dynamically as levels. Level offset controls visible length.
- you can move levels and scale the base width of the volume profile histogram dynamically
- you can calculate the highest/lowest range values automatically. max_level/min_level inputs are optional
- you can't fill the gaps between levels/adjust/extend width, height - this results in a half baked volume profile and looks ugly
- fixed text level height doesn't adjust and looks bad on a log scale
- fixed font width also doesn't scale and can't be properly aligned with bars when zooming
2. plot style columns + hist_base (ver 1.0)
- you can plot long horizontal bars using a series of small adjacent vertical columns with level offsets controlling visible length.
- you can't hide/move levels of the volume profile histogram dynamically on each bar, they must be plotted at all times regardless - you can't delete the history of a plot.
- you can't scale the base width of the volume profile histogram dynamically, can't set show_last from input, must use a preset fixed width for each level
- hist_base can only be a static const expression, can't be assigned highest/lowest range values automatically - you have to specify max_level/min_level manually from input
- you can't control spacing between columns - there's an equalizer bar effect when you zoom in, and solid bars when you zoom out
- using hist_base for levels results in ugly load/redraw times - give it 3-5 sec to finalize its shape after each UI param change
- level top can be properly aligned with another level's bottom producing a clean good looking histogram
- columns are properly aligned with bars automatically
3. plot style histogram + hist_base (ver 2.0)
- you can plot long horizontal bars using a series of small vertical bars (horizontal histogram) instead of columns.
- you can control the width of each histogram bar comprising a level (spacing/horiz density). Large enough width will cause bar overlapping and give level a "solid" look regardless of zoom
- you can only set width <= 4 in UI Style - custom textbox input is provided for larger values. You can set width and plot transparency from input
- this method still uses hist_base and inherits other limitations of ver 2.0
4. plot style lines (ver 3.0)
- you can also plot long horizontal bars using lines with level offsets controlling visible length.
- lines don't need hist_base - fast and smooth redraw times
- you can calculate the highest/lowest range values automatically. max_level/min_level inputs are optional
- level top can't be properly aligned with another level's bottom and have a proper spacing because line width uses its own units and doesn't scale
- fixed line width of a level (vertical thickness) doesn't scale and looks bad on log (level overlapping)
- you can only set width <= 4 in UI Style, a custom textbox input is provided for larger values. You can set width and plot transparency from input
Notes:
- hist_base for levels results in ugly load/redraw times - give it 3-5 sec to finalize its shape after each UI param change
- indicator is slow on TFs with long history 10000+ bars
- Volume Profile/Value Area are calculated for a given range and updated on each bar. Each level has a fixed width. Offsets control visible level parts. Side Cover hides the invisible parts.
- Custom Color for POC/VA/VWAP levels - UI Style color/transparency can only change shape's color and doesn't affect textcolor, hence this additional option
- Custom Widh for levels - UI Style supports only width <= 4, hence this additional option
- POC is visible in both modes. In VWAP mode Developing POC becomes VWAP, VA High and Low => VWAP High and Low correspondingly to minimize the number of plot outputs
- You can't change buy/sell level colors (only plot transparency) - this requires 2x plot outputs exceeding max 64 limit. That's why 2 additional plots are used to dim the non Value Area zones
- Use Side by Side view to compare buy and sell volumes between each other: base width = max(total_buy_vol, total_sell_vol)
- All buy/sell volume lengths are calculated as % of a fixed base width = 100 bars (100%). You can't set show_last from input
- Sell Offset is calculated relative to Buy Offset to stack/extend sell on top of buy. Buy Offset = Zero - Buy Length. Sell Offset = Buy Offset - Sell Length = Zero - Buy Length - Sell Length
- If you see "loop too long error" - change some values in UI and it will recalculate - no need to refresh the chart
- There's no such thing as buy/sell volume, there's just volume, but for the purposes of the Volume Profile method, assume: bull candle = buy volume, bear candle = sell volume
- Volume Profile Range is limited to 5000 bars for free accounts
P.S. Cantaloupia Will be Free!
Links on Volume Profile and Value Area calculation and usage:
www.tradingview.com
stockcharts.com
onlinelibrary.wiley.com
PPSRMA -COMPILATION OF 2 GREAT SCRIPTS AND DOUBLE MAFirst of all I just did the compilation so this is not my idea, it is just a miscellany.
This script has been compiled for authors who have just been introduced to scripts : for unloading and leaving room for other indicators especially:non-pro users needs space for indicators and users seeking best technical combination. This script says thousands of comments.
It's the best combination I've ever try and see everything about future. All efforts belongs to ChrisMoody.
( And fernandofurtado for double moving average codes)
--------------- INGREDIENTS ------------------
1-) Price Action Bars - Price Patterns - CM_Price-Action-Bars-Price Patterns That Work! ( by ChrisMoody )
Original :
2-) Oldschool Projected High & Lows - CM_OldSchool_Projected_high_Low ( by ChrisMoody )
Original :
3-) Multiple Moving Averages - ( by fernandofurtado )
Original :
---------- SETTINGS- -----------
- Use dark theme
- Select SMA fast : 25 SMA slow : 50 ( Inputs)
- Tick all inputs and see price action bars ( Inputs)
FOR FLOW TRADERS :
** Use 30 mins graphs with - Weekly Projected High & Lows
*** Choose high liquidity stocks ( Bank stocks etc.)
FOR MEDIUM - LONG TERM TRADERS AND INVESTORS
** Use 4 hour graphs with - Quarterly Projected High & Lows OR
** 1 day graphs with - Yearly Projected High &Lows ( OR Quarterly Projected High & Lows )
------------------- SUGGESTIONS --------------------
* Add MACD (12,26) and RSI (14) in your empty slots.
* Use mostly on stock markets.
* Be careful about stocks under red breakout line are dangerous same as above green breakout levels.
* Always consider with all indicators and patterns (especially price patterns), get confirmed from Volume.
* Consider with financial analysis ( mostly for medium-long term )
NOTE : The authors' codes are specified on scripts source codes.
PivotBoss Outside Reversal SetupPATTERN SUMMARY
1. The engulfing bar of a bullish outside reversal setup has a low that is below the prior bar's low (L < L ) and a
close that is above the prior bar's high (C > H ).
2. The engulfing bar of a bearish outside reversal setup has a high that is above the prior bar's high (H > H )
and a close that is below the prior bar's low (C < L ).
3. The engulfing bar is usually 5 to 25 percent larger than the size of the average bar in the lookback period.
PATTERN PSYCHOLOGY
The power behind this pattern lies in the psychology behind the traders involved in this setup. If you have
ever participated in a breakout at support or resistance only to have the market reverse sharply against you, then
you are familiar with the market dynamics of this setup. What exactly is going on at these levels? To understand
this concept is to understand the outside reversal pattern. Basically, market participants are testing the waters
above resistance or below support to make sure there is no new business to be done at these levels. When no
initiative buyers or sellers participate in range extension, responsive participants have all the information they
need to reverse price back toward a new area of perceived value.
As you look at a bullish outside reversal pattern, you will notice that the current bar's low is lower than the
prior bar's low. Essentially, the market is testing the waters below recently established lows to see if a downside
follow-through will occur. When no additional selling pressure enters the market, the result is a flood of buying
pressure that causes a springboard effect, thereby shooting price above the prior bar's highs and creating the
beginning of a bullish advance.
If you recall the child on the trampoline for a moment, you'll realize that the child had to force the bounce
mat down before he could spring into the air. Also, remember Jennifer the cake baker? She initially pushed price
to $20 per cake, which sent a flood of orders into her shop. The flood of buying pressure eventually sent the price
of her cakes to $35 apiece. Basically, price had to test the $20 level before it could rise to $35.
Let's analyze the outside reversal setup in a different light for a moment. One of the reasons I like this setup
is because the two-bar pattern reduces into the wick reversal setup, which we covered earlier in the chapter. If
you are not familiar with candlestick reduction, the idea is simple. You are taking the price data over two or more
candlesticks and combining them to create a single candlestick. Therefore, you will be taking the open, high, low,
and close prices of the bars in question to create a single composite candlestick.
Take a look at Figure 2.13, which illustrates the candlestick reduction of the outside reversal setup.
Essentially, taking the highest high and the lowest low over the two-bar period gives you the range of the
composite candlestick. Then, taking the opening price of the first candle and the closing price of the last candle
will finish off the composite candlestick. Depending on the structure of the bars of the outside reversal setup, the
result of the candlestick reduction will usually be the transformation into a wick reversal setup, which we know to
be quite powerful. Therefore, in many cases the physiology of the outside reversal pattern basically demonstrates
the inherent psychological traits of the wick reversal pattern. This is just another level of analysis that reinforces
my belief in the outside reversal setup.
EMA + SuperTrend Signals (Customized Subham) - FIXED//@version=5
indicator("EMA + SuperTrend Signals (modes + filters) - FIXED firstClose", overlay=true, shorttitle="EMA×ST Modes", max_labels_count=500)
// ====== USER INPUTS ======
useHeikin = input.bool(false, "Use Heikin Ashi price (set true if chart is Heikin Ashi)")
srcType = input.string("Close", "Price source for EMA/SuperTrend", options= )
emaFastLen = input.int(10, "Fast EMA Length", minval=1)
emaSlowLen = input.int(50, "Slow EMA Length", minval=1)
useEMAFilter = input.bool(true, "Require EMA filter for signals (Fast EMA > Slow EMA)")
atrLen = input.int(10, "SuperTrend ATR Length", minval=1)
atrMult = input.float(3.0, "SuperTrend ATR Multiplier", step=0.1)
showArrows = input.bool(true, "Show buy/sell arrows")
showBands = input.bool(true, "Show final upper/lower bands")
showST = input.bool(true, "Show SuperTrend line")
showEMA = input.bool(true, "Plot EMAs")
showBg = input.bool(true, "Color background by ST")
alertsEnabled = input.bool(true, "Enable alertcondition()s")
// ====== SIGNAL MODE / BEHAVIOR ======
signalMode = input.string("Flip only", "Signal Mode", options= )
allowOnTrendNotOnlyFlip = input.bool(true, "Allow signals based on Signal Mode (in addition to flips)")
// ====== SIDEWAYS / NOISE FILTER INPUTS ======
useAdxFilter = input.bool(true, "Use ADX filter (require trend strength)")
adxLen = input.int(14, "ADX length", minval=1)
adxThreshold = input.int(20, "ADX threshold (lower = more signals)")
useVolFilter = input.bool(true, "Use ATR% volatility filter (require sufficient movement)")
volPctThreshold = input.float(0.002, "ATR / Price threshold (e.g. 0.002 = 0.2%)", step=0.0001)
useRsiFilter = input.bool(true, "Use RSI filter")
rsiLen = input.int(14, "RSI length", minval=1)
rsiBuyThreshold = input.int(50, "RSI buy threshold (require RSI > this for buys)", minval=1, maxval=99)
rsiSellThreshold = input.int(50, "RSI sell threshold (require RSI < this for sells)", minval=1, maxval=99)
// ====== HEIKIN ASHI VALUES (optional) ======
var float haOpen = na
var float haClose = na
var float haHigh = na
var float haLow = na
if useHeikin
haClose := (open + high + low + close) / 4.0
haOpen := na(haOpen ) ? (open + close) / 2.0 : (haOpen + haClose ) / 2.0
haHigh := math.max(high, math.max(haOpen, haClose))
haLow := math.min(low, math.min(haOpen, haClose))
// ====== PRICE SOURCE FUNCTION ======
_getSrc(_choice) =>
float _result = na
if useHeikin
if _choice == "Close"
_result := haClose
else if _choice == "HL2"
_result := (haHigh + haLow) * 0.5
else
_result := (haHigh + haLow + haClose) / 3.0
else
if _choice == "Close"
_result := close
else if _choice == "HL2"
_result := (high + low) * 0.5
else
_result := (high + low + close) / 3.0
_result
priceSrc = _getSrc(srcType)
priceHigh = useHeikin ? haHigh : high
priceLow = useHeikin ? haLow : low
priceClose = nz(priceSrc, close)
// ====== EMA CALC ======
emaFast = ta.ema(priceSrc, emaFastLen)
emaSlow = ta.ema(priceSrc, emaSlowLen)
// ====== SUPER TREND CALC (finalUpper / finalLower) ======
hl2_local = (priceHigh + priceLow) * 0.5
atr = ta.atr(atrLen)
upperBasic = hl2_local + atrMult * atr
lowerBasic = hl2_local - atrMult * atr
var float finalUpper = na
var float finalLower = na
finalUpper := nz(finalUpper , upperBasic)
finalLower := nz(finalLower , lowerBasic)
finalUpper := (upperBasic < finalUpper or priceClose > finalUpper) ? upperBasic : finalUpper
finalLower := (lowerBasic > finalLower or priceClose < finalLower) ? lowerBasic : finalLower
var int trend = 1
trend := nz(trend , 1)
if (priceClose > nz(finalUpper , finalUpper))
trend := 1
else if (priceClose < nz(finalLower , finalLower))
trend := -1
superTrend = trend == 1 ? finalLower : finalUpper
isBull = trend == 1
isBear = trend == -1
// ====== SIGNAL RULE BASE (flips) ======
prevTrend = nz(trend , trend)
bullFlip = (trend == 1 and prevTrend == -1)
bearFlip = (trend == -1 and prevTrend == 1)
// EMA crossover signals (series)
emaXoverBuy = ta.crossover(emaFast, emaSlow)
emaXoverSell = ta.crossunder(emaFast, emaSlow)
// price vs superTrend confirmation
priceAboveST = priceClose > superTrend
priceBelowST = priceClose < superTrend
// Basic EMA filters
emaFilterBuy = (emaFast > emaSlow) and (priceClose > emaFast)
emaFilterSell = (emaFast < emaSlow) and (priceClose < emaFast)
// Build raw candidates depending on mode
flipBuy = bullFlip
flipSell = bearFlip
// firstClose: first bar where trend flipped and price confirms on that bar's close
firstCloseBuy = (trend == 1) and (prevTrend == -1) and (priceClose > superTrend)
firstCloseSell = (trend == -1) and (prevTrend == 1) and (priceClose < superTrend)
// emaCrossoverCandidate: EMA cross while trend confirms
emaCandidateBuy = emaXoverBuy and (trend == 1)
emaCandidateSell = emaXoverSell and (trend == -1)
// Compose the raw buy/sell depending on chosen Signal Mode
var bool buySignal_raw = false
var bool sellSignal_raw = false
if signalMode == "Flip only"
buySignal_raw := flipBuy
sellSignal_raw := flipSell
else if signalMode == "First close in trend"
buySignal_raw := firstCloseBuy or (allowOnTrendNotOnlyFlip and flipBuy)
sellSignal_raw := firstCloseSell or (allowOnTrendNotOnlyFlip and flipSell)
else // "EMA crossover in trend"
buySignal_raw := emaCandidateBuy or (allowOnTrendNotOnlyFlip and flipBuy)
sellSignal_raw := emaCandidateSell or (allowOnTrendNotOnlyFlip and flipSell)
// Apply EMA filter option (if enabled)
if useEMAFilter
buySignal_raw := buySignal_raw and emaFilterBuy
sellSignal_raw := sellSignal_raw and emaFilterSell
// ====== SIDEWAYS FILTERS IMPLEMENTATION ======
// Manual ADX implementation (Wilder smoothing)
up = priceHigh - priceHigh
down = priceLow - priceLow
plusDM = (up > down and up > 0) ? up : 0.0
minusDM = (down > up and down > 0) ? down : 0.0
tr1 = priceHigh - priceLow
tr2 = math.abs(priceHigh - nz(priceClose , priceClose))
tr3 = math.abs(priceLow - nz(priceClose , priceClose))
trueRange = math.max(tr1, math.max(tr2, tr3))
smoothedTR = ta.rma(trueRange, adxLen)
smoothedPlusDM = ta.rma(plusDM, adxLen)
smoothedMinusDM = ta.rma(minusDM, adxLen)
plusDI = smoothedTR == 0 ? 0.0 : (100.0 * smoothedPlusDM / smoothedTR)
minusDI = smoothedTR == 0 ? 0.0 : (100.0 * smoothedMinusDM / smoothedTR)
dx = (plusDI + minusDI == 0) ? 0.0 : (100.0 * math.abs(plusDI - minusDI) / (plusDI + minusDI))
adxValue = ta.rma(dx, adxLen)
adxOk = useAdxFilter ? (adxValue > adxThreshold) : true
// ATR% check
safePrice = priceClose == 0.0 ? nz(close) : priceClose
atrPct = atr / math.abs(safePrice)
volOk = useVolFilter ? (atrPct > volPctThreshold) : true
// RSI checks
rsiValue = ta.rsi(priceSrc, rsiLen)
rsiOkBuy = useRsiFilter ? (rsiValue > rsiBuyThreshold) : true
rsiOkSell = useRsiFilter ? (rsiValue < rsiSellThreshold) : true
// Allow signal only when all enabled filters pass (separate for buy/sell)
allowBuy = adxOk and volOk and rsiOkBuy
allowSell = adxOk and volOk and rsiOkSell
// Final gated signals
buySignal = buySignal_raw and allowBuy
sellSignal = sellSignal_raw and allowSell
// Avoid both at once
if (buySignal and sellSignal)
buySignal := false
sellSignal := false
// ====== PLOTTING ======
plot(showEMA ? emaFast : na, title="EMA Fast", linewidth=2)
plot(showEMA ? emaSlow : na, title="EMA Slow", linewidth=2)
pUpper = plot(showBands ? finalUpper : na, title="Final Upper", linewidth=2, style=plot.style_line)
pLower = plot(showBands ? finalLower : na, title="Final Lower", linewidth=2, style=plot.style_line)
plot(showST ? superTrend : na, title="SuperTrend", linewidth=3, style=plot.style_line)
fill(pUpper, pLower, color = color.new(color.blue, 92))
plotshape(series = (showArrows and buySignal), title="Buy Arrow", style=shape.labelup, location=location.belowbar, color=color.green, text="BUY", textcolor=color.white, size=size.tiny)
plotshape(series = (showArrows and sellSignal), title="Sell Arrow", style=shape.labeldown, location=location.abovebar, color=color.red, text="SELL", textcolor=color.white, size=size.tiny)
// ====== BACKGROUND COLOR ======
var color bg_col = na
if showBg
if not (adxOk and volOk)
bg_col := color.new(color.gray, 85)
else
bg_col := isBull ? color.new(color.green, 90) : color.new(color.red, 90)
else
bg_col := na
bgcolor(bg_col)
// ====== ALERTS ======
alertcondition(alertsEnabled and buySignal, title="EMA+ST Buy", message="EMA+ST BUY — signal passed filters.")
alertcondition(alertsEnabled and sellSignal, title="EMA+ST Sell", message="EMA+ST SELL — signal passed filters.")
alertcondition(alertsEnabled and (buySignal or sellSignal), title="EMA+ST Any Signal", message="EMA+ST signal detected.")
// ====== DEBUG / LABELS ======
showDebug = input.bool(false, "Show debug label (mode, ADX, ATR%, RSI)")
if showDebug and barstate.islast
var label dbg = na
label.delete(dbg)
dbgText = "Mode:" + signalMode + " ADX:" + str.tostring(adxValue, "#.0") + " ATR%:" + str.tostring(atrPct*100, "#.2") + "% RSI:" + str.tostring(rsiValue, "#.1")
dbg := label.new(bar_index, high, dbgText, xloc=xloc.bar_index, yloc=yloc.abovebar, style=label.style_label_left, color=color.gray, textcolor=color.white)
var label lastLbl = na
if barstate.islast
label.delete(lastLbl)
lastLbl := label.new(bar_index, high, isBull ? "ST: Bull" : "ST: Bear", xloc=xloc.bar_index, yloc=yloc.abovebar, style=label.style_label_left, color=isBull ? color.green : color.red, textcolor=color.white)






















